레디스 클러스터 개요
레디스 클러스터 아키텍처로 구성하면 분산되어 저장되는 샤딩으로 인해 성능상 이점을 얻을 수 있다.

하지만 특정 노드에만 부하가 생길 수 있다.
그래서 여러 키가 동일한 노드에 저장되도록 하려면 "해시 태그"라는 기능을 사용할 수 있다.
Redis가 키의 해시 슬롯을 계산할 때 키에
{
와 }
사이의 하위 문자열이 포함되어 있으면 이 하위 문자열(해시 태그)만 해시되어 슬롯을 계산한다. 즉, 두 개의 키가 동일한 해시 태그를 가지면 동일한 노드에 저장된다.다음은 Spring Data Redis와 함께 Spring Boot에서 해시 태그를 사용하는 방법에 대한 간단한 예이다.
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; @Service public class RedisService { private final StringRedisTemplate redisTemplate; public RedisService(StringRedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } public void putInSameNode() { // Using hash tags to ensure keys are on the same node String key1 = "user1{user}"; String key2 = "user2{user}"; redisTemplate.opsForValue().set(key1, "value1"); redisTemplate.opsForValue().set(key2, "value2"); } }
이 예에서
user1{user}
와 user2{user}
는 동일한 해시 태그 {user}
를 가지고 있기 때문에 동일한 노드에 저장된다.이것은 매우 기본적인 예이다.
실제 응용 프로그램에서는 예외를 처리하고 필요한 경우 트랜잭션을 사용하는 등의 작업을 수행해야 하며 전략을 잘 세워야 한다.
Redis - Cli에서 해시태그 기능이 잘 적용되는지 확인

보면 { } 괄호 안에 들어간 값에 의해 같은 슬롯에 저장되는 것을 확인할 수 있다.