본문 바로가기

DATA BASE/Redis

Redis Cluster

✅ Redis Cluster란?

  • Redis가 제공하는 분산 저장 및 고가용성(High Availability)을 지원하는 공식 기능
  • 여러 Redis 노드를 묶어 하나의 클러스터로 구성 → 데이터를 자동으로 샤딩하고, 장애가 발생해도 자동으로 Failover 처리

✅ 핵심 개념

  1. 슬롯(Slot) 기반 분산
    • Redis Cluster는 전체 Key 공간을 16384개 슬롯으로 나눔
    • 각 노드는 특정 슬롯 범위를 담당 
    • Key → CRC16 해시 → 슬롯 번호 → 해당 슬롯 담당 노드로 매핑
  2. Master-Slave 구조
    • 각 슬롯은 Master 노드가 관리, Slave 노드는 복제본 유지
    • Master 장애 발생 시 Slave가 자동 승격(Failover) → 서비스 중단 최소화
  3. 자동 리밸런싱
    • 노드 추가/삭제 시 슬롯을 재분배하여 데이터 균형 유지
  4. 클라이언트 동작 방식
    • 클라이언트는 Key 요청 시 어떤 노드에 가야 할지 몰라도 됨
    • 잘못된 노드로 요청하면 MOVED 리다이렉트 응답을 받아 올바른 노드로 재요청

✅ 장점

  • 수평 확장(Scale-out) : 노드를 추가해 저장 용량과 처리 성능을 확장 가능
  • 고가용성 : Master 장애 시 Slave 자동 승격 → 무중단 서비스 지원
  • 운영 효율성 : 공식적으로 지원되는 기능이라 별도 프록시 없이 사용 가능

✅ 단점 / 고려사항

  • 트랜잭션/멀티키 연산 제약 : 여러 Key가 다른 슬롯에 있으면 Multi-key 연산 불가
  • 운영 복잡도 : 단일 Redis보다 설정과 모니터링이 복잡
  • 네트워크 안정성 필요 : 클러스터 노드 간 통신이 필수적

✅ 한줄 요약

Redis Cluster는 데이터를 16384 슬롯으로 나눠 자동으로 샤딩하는 구조, Master-Slave로 구성되어 장애 시 자동 Failover를 지원하고, 노드를 추가해 수평 확장이 가능

'DATA BASE > Redis' 카테고리의 다른 글

Redis 비교표  (0) 2025.09.08
Redis  (0) 2025.09.08
jemalloc 어려워서 링크 가져옴  (0) 2025.08.20
왜 Redis는 Jemalloc을 쓸까?  (0) 2025.08.20
Redis 캐싱으로 DB 부하 감소시키기  (0) 2025.08.20