Redis 클러스터에서 데이터 샤드가 작동하는 방법은 다음과 같습니다.
redis 클러스터 샤딩
Redis Cluster는 내장형 샤딩 메커니즘을 사용하여 여러 Redis 노드에서 데이터를 자동으로 분할합니다. 이 작동 방식의 주요 측면은 다음과 같습니다.
1. 키 공간 파티셔닝 : Redis 클러스터의 전체 키 공간은 16,384 해시 슬롯으로 나뉩니다. 이 해시 슬롯은 클러스터 전체에 데이터를 배포하는 데 도움이됩니다.
2. 해시 슬롯 할당 : 클러스터의 각 Redis 노드에는 16,384 해시 슬롯의 하위 집합이 할당됩니다. 해시 슬롯을 노드에 할당하는 것은 해시 함수를 통해 수행됩니다.
3. 데이터 배치 : 클라이언트가 키 값 쌍을 저장하려는 경우 클라이언트는 사전 정의 된 해시 함수를 사용하여 키의 해시 값을 계산합니다. 이 해시 값은 16,384 해시 슬롯 중 하나에 매핑됩니다. 그런 다음 해시 슬롯을 소유 한 Redis 노드에 데이터가 저장됩니다.
4. 복제 : 각 해시 슬롯마다 읽기/쓰기 요청을 제공하는 기본 노드가 있습니다. 또한 고 가용성을 위해 데이터의 사본을 유지하는 하나 이상의 복제 노드가 있습니다.
5. 자동 재 조정 : 클러스터에서 노드가 추가되거나 제거됨에 따라 해시 슬롯 할당은 자동으로 재조정되어 데이터의 균일 한 분포 및 클러스터를 가로 질러로드합니다.
Redis 클러스터 샤딩의 이점
1. 확장 성 : 여러 노드에 데이터를 배포함으로써 Redis 클러스터는 많은 양의 데이터와 높은 처리량을 처리하기 위해 확장 할 수 있습니다.
2. 고 가용성 : 일부 노드가 실패하더라도 클라이언트가 데이터에 계속 액세스 할 수 있으므로 기본 및 복제 노드에 걸쳐 해시 슬롯의 복제는 고 가용성을 보장합니다.
3. 투명한 클라이언트 액세스 : 해시 슬롯 매핑은 Redis 클러스터에 의해 투명하게 처리되므로 클라이언트는 기본 샤딩의 세부 사항을 알 필요없이 데이터에 액세스 할 수 있습니다.
4. 자동 관리 : Redis Cluster는 클러스터가 성장하거나 줄어들면서 재조정 데이터를 포함하여 샤딩 관리를 자동화합니다.
전반적으로 Redis 클러스터의 샤드 아키텍처를 통해 확장 가능하고 사용 가능한 관리하기 쉬운 분산 데이터 저장소를 제공 할 수 있으므로 데이터 볼륨이 많거나 처리량이 높은 응용 프로그램에 적합합니다.
인용 :[1] https://scalegrid.io/blog/intro-to-redis-sharding/
[2] https://redis.io/redis-enterprise/technology/redis-enterprise-cluster-architecture/
[3] https://yandex.cloud/en/docs/managed-redis/concepts/sharding
[4] https://redisson.org/glossary/sharding.html
[5] https://docs.aws.amazon.com/amazonelasticache/latest/red-ug/cachenodes.nodegroups.html