Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Redis 클러스터에서 데이터 샤딩은 어떻게 작동하나요?


Redis 클러스터에서 데이터 샤딩은 어떻게 작동하나요?


Redis 클러스터에서 데이터 샤딩이 작동하는 방식은 다음과 같습니다.

Redis 클러스터 샤딩

Redis 클러스터는 내장된 샤딩 메커니즘을 사용하여 여러 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