본문 바로가기

기술

[Redis] Redis standalone vs sentinel vs cluster

728x90
반응형

 

Redis 기본 개념

DB보다 데이터를 빠르게 처리하기 위해서 사용되는 인메모리 저장소로,

싱글스레드로 모든 작업을 처리한다는 특징을 가지고 있습니다.

 

레디스는 다음과 같이 크게 3가지 형태를 제공하고 있습니다.

 

Standalone


하나의 인스턴스만 사용해 Redis를 구성하는 방식입니다.
셋 중에서 가장 심플하고 단순하지만,
인스턴스에 장애가 생기면 대체할 수 있는 다른 인스턴스가 없기때문에 HA(High availibilty) 보장 되지 않습니다.
싱글스레드로 작업이 처리되기 때문에 병목 현상이 생길 확률 높습니다.

 

Sentinel


Master/Slave replication이 지원됩니다.


Sentinel이 redis를 모니터링하고 있습니다.
따라서 Master에서 장애가 생겨서 내려가면 Sentinel끼리 투표를 통해 대체할 Slave를 뽑아 Master로 승격함으로써 HA를 보장합니다.
과반수 투표를 통해 승격할 Slave를 선출하기 때문에 최소 3개부터 홀수 개의 Sentinel이 구성되어있어야 합니다.

 

Cluster


Master/Slave Replication 구조로 HA 지원합니다.
데이터가 들어오면 key에 CRC16 알고리즘을 적용해 나온 값에 mod 16384 후 이를 0~16383의 hashslot에 나누어 분배합니다.
ex) 레디스가 3노드일 경우, 1번 노드는 0-5460, 2번 노드는 5461-10922, 3번 노드는 10923-16383를 가지고, 알고리즘을 통해 나온 나머지 값에 해당하는 노드에 데이터를 저장한다
자신에게 해당하지 않는 key를 조회할 경우 key값에 매칭되는 hashslot을 가진 cluster node 주소로 redirect해줍니다.
gossip protocol을 이용하여 서로 상태 정보를 교환합니다.

 

 

728x90
반응형