Redis Cluster 특징

Scale out

적절한 성능의 머신을 추가해서 전체적인 성능을 향상시킴.

Data Sharding

대량의 데이터를 처리하기 위해 여러 개의 DBMS에 분할하는 형태

Fully Connected Mesh Topology

단일 장애점이 없는 토폴로지. Slave 노드를 포함한 모든 노드가 서로를 확인하고 정보를 주고 받는다. 즉, 모든 노드가 클러스터 구성 정보(슬롯 할당 정보)를 가지고 있다. 클라이언트는 어느 노드든지 접속해서 클러스터 구성정보(슬롯 할당 정보)를 가져와서 보유하며, 입력되는 키에 따라 해당 노드에 접속해서 처리한다. 과반수 이상의 노드(예를들면 Master 노드 3개중 2개 또는 Slave 1개, Master노드 1개씩 있는 구성에서 Master 노드와 Slave 노드 쌍으로 다운)가 다운되면 레디스 클러스터는 멈춘다.

Hash Sharding

Key에 해시 함수(CRC16 function)를 적용해서 노드를 할당. 노드 추가, 삭제 시 레디스 클러스터 전체를 중지할 필요 없고, 키 이동 시에만 해당 키에 대해서만 잠시 멈출 수 있다. 16384(0~16383)의 슬롯을 사용하며 이를 노드에 할당한다.

장애조치(failover)

한 마스터 다운시 다른 마스터들이 장애조치를 진행하여 별도의 센티넬이 필요하지 않음.

 

 

Redis Sentinel과 비교하자면

Redis Sentinel은 마스터와 커뮤니케이션 해야하고, 데이터 사이즈가 커지면 스케일 업을 해야한다.

Redis Cluster는 모든 노드에 접속 가능(데이터 샤딩), 스케일 아웃이 가능하며, Slave 노드 활용가능하다.


출처

- http://redisgate.kr/redis/cluster/cluster_introduction.php

'빅데이터 > Redis Cluster' 카테고리의 다른 글

Redis Configuration  (0) 2022.02.08
Redis 주요 명령어  (0) 2022.02.08
Lettuce Configuration(RedisTemplate)  (0) 2022.02.08
Redis Cluster 장애 복구  (0) 2022.02.08

+ Recent posts