HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
✍🏻
Learnary (learn - diary)
/
Redis Cluster 모드의 해시테그

Redis Cluster 모드의 해시테그

progress
Done
Tags
Database
레디스 클러스터 개요하지만 특정 노드에만 부하가 생길 수 있다.Redis - Cli에서 해시태그 기능이 잘 적용되는지 확인

레디스 클러스터 개요

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

하지만 특정 노드에만 부하가 생길 수 있다.

그래서 여러 키가 동일한 노드에 저장되도록 하려면 "해시 태그"라는 기능을 사용할 수 있다.
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에서 해시태그 기능이 잘 적용되는지 확인

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