2025년 4월 22일
출처:
<aside>
📖 [LIST]
</aside>
Redis Clustering이란?
레디스 클러스터링은 여러 대의 레디스(REDIS) 서버를 하나의 시스템처럼 묶어, 데이터를 자동으로 분산 저장(샤딩, Sharding)하고, 장애 발생 시에도 서비스가 중단되지 않도록 고가용성(High Availability)을 제공하는 분산 환경 기술입니다.
클러스터 내의 각 서버(노드)는 역할에 따라 마스터(Master)와 슬레이브(Slave, 또는 Replica)로 구분됩니다. 마스터 노드는 데이터를 직접 저장하고 처리하며, 슬레이브 노드는 마스터의 데이터를 복제하여 장애 발생 시 자동으로 승격(Failover)될 수 있습니다.
왜 Redis Clustering을 사용하는가?
- 수평 확장성: 단일 서버의 메모리 한계를 극복하고, 여러 서버에 데이터를 분산 저장함으로써 대용량 데이터를 처리할 수 있습니다.
- 고가용성: 일부 노드에 장애가 발생해도 슬레이브 노드가 자동으로 마스터로 승격되어 서비스 중단 없이 운영이 가능합니다.
- 자동 데이터 샤딩: 데이터는 해시 슬롯(Hash Slot)에 따라 자동으로 여러 노드에 분산 저장되어, 트래픽과 부하가 분산되고 성능이 최적화됩니다.
- 장애 복구 및 데이터 안정성: 데이터가 여러 노드에 복제되어 있어, 하나의 노드에 문제가 생겨도 데이터 유실 없이 다른 노드에서 계속 작업을 수행할 수 있습니다.
- 트래픽 분산: 여러 서버에서 데이터를 처리함으로써 특정 서버에 트래픽이 집중되는 현상을 방지할 수 있습니다.
레디스 클러스터링의 동작 방식
1. 데이터 분산(Sharding) 구조
- 레디스 클러스터는 전체 키 공간을 16,384개의 해시 슬롯(Hash Slot)으로 나눕니다.
- 각 키는 해시 함수를 통해 하나의 슬롯에 매핑되고, 슬롯들은 여러 마스터 노드에 분배되어 저장됩니다.
- 예를 들어, 3개의 마스터 노드가 있다면 각 노드는 약 5,461개의 슬롯을 담당하게 됩니다.
2. 노드 구성과 역할
- 마스터-슬레이브 구조: 각 마스터 노드는 하나 이상의 슬레이브(Replica)를 가집니다. 마스터에 장애가 발생하면 해당 마스터의 슬레이브가 자동으로 마스터로 승격됩니다.