Redis 클러스터
- 레디스를 수평 확장하기 위한 배포 토폴로지.
- 여러 레디스 노드에 데이터를 분산해 가용성을 높이는 것이 목적.
Data Sharding
- 레디스 클러스터는 안정 해시를 사용하는 대신 해시 슬롯을 사용한다.
- 16384개의 해시 슬롯이 있고, 키 공간을 나누어 데이터를 샤딩한다.
- 여러 노드에 키가 분산되어 있으면 MGET, MSET을 사용할 수 없음:
- 따라서 단일 레디스만 사용하는 코드베이스를 클러스터로 마이그레이션할 때 수정이 필요함.
- 해시 태그를 이용해 하나의 노드에 키를 묶어서 저장할 수 있음:
key:{group}:value
형태로 저장하면{group}
에 따라 키가 분산되지 않고 하나의 노드에 저장됨.- 이러헥 하면 해당
group
에 대한 MGET, MSET을 사용할 수 있음. - 단, 해시 태그를 남용하면 레디스 클러스터의 장점인 가용성을 잃게 됨.