✅ Redis Cluster란?
- Redis가 제공하는 분산 저장 및 고가용성(High Availability)을 지원하는 공식 기능
- 여러 Redis 노드를 묶어 하나의 클러스터로 구성 → 데이터를 자동으로 샤딩하고, 장애가 발생해도 자동으로 Failover 처리
✅ 핵심 개념
- 슬롯(Slot) 기반 분산
- Redis Cluster는 전체 Key 공간을 16384개 슬롯으로 나눔
- 각 노드는 특정 슬롯 범위를 담당
- Key → CRC16 해시 → 슬롯 번호 → 해당 슬롯 담당 노드로 매핑
- Master-Slave 구조
- 각 슬롯은 Master 노드가 관리, Slave 노드는 복제본 유지
- Master 장애 발생 시 Slave가 자동 승격(Failover) → 서비스 중단 최소화
- 자동 리밸런싱
- 노드 추가/삭제 시 슬롯을 재분배하여 데이터 균형 유지
- 클라이언트 동작 방식
- 클라이언트는 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 |