본문 바로가기
IT/Knowledge

[Redis] Cluster VS Sentinel

by 성준하이 2024. 6. 7.
반응형

예전 포스팅에서 Redis에 대해서 다룬 글이 있다.

그리고 사용법에 대해서도 글이 있다.

자세한 내용은 아래 참고 포스팅 참고 바란다.

 

Redis 서버를 구성하는 방법 에 대해서 다뤄 볼 것이다.

 

크게 2가지가 존재한다.

Cluster 와 Sentinel 이다.

 

Cluster

먼저 클러스터에 대한 설명이다.

그림은 위와 같다.

샤딩 기술을 통해서 데이터를 분산 저장하고 있는것이 특징이다.

(샤딩 : 데이터를 분산 저장하는 방식)

 

동작 방식은 아래와 같다.
1. 해시 슬롯을 이용해 데이터를 샤딩한다.
- 해시 슬롯 : CRC-16 해시 함수를 이용해 key를 정수로 변환하고 해당 정수값을 16,385로 모듈 연산한 값
- cluster는 총 16384개의 해시 슬롯이 있으며 각 Master 노드에 자유롭게 할당 가능
   ex) Master 노드가 3개일 경우 1번 노드는 0~5460, 2번 노드는 5461~10922, 3번 노드는 10923~16383 의 슬롯할당

2. Master가 죽을 경우 Master의 Slave는 gossip Protocol을 통해 Master의 죽음을 파악하고, Slave중 하나가 Master로 승격된다 → 중단없는 서비스 제공할수 있다.
- gossip Protocol : 각 Redis는 다른 Redis들과 직접 연결하여 상태 정보를 통신


3. 기존 Master가 다시 살아나면 새로운 Master의 Slave가 된다.

 

Sentinel

다음은 센티넬에 대한 설명이다.

계속해서 모니터링을 해줘야하는것이 특징이다.

 

동작 방식은 아래와 같다.
1. Sentinal 인스턴스 과반 수 이상이 Master 장애를 감지하면 Slave 중 하나를 Master로 승격시키고 기존의 Master는 Slave로 강등

2. Slave가 여러개 있을 경우 Slave가 새로운 Master로부터 데이터를 받을 수 있도록 재구성

 

즉 문제가 생기면 다른 Slave중에 하나가 Master 가 된다.

 

결론

 

추후 scale out 을 고려한다면 cluster 가 더욱 효율적이다.

sentinel 이 발전되어 cluster로 된것이라 생각하면 된다.


참고 포스팅

https://thenicesj.tistory.com/441

 

Redis vs Memcached

Redis(Remote Dictionary Storage, 레디스)와 Memcached(맴캐시드)는 유명한 오픈소스인, 인메모리 데이터 저장소이다. 둘 모두 사용하기 쉽고, 고성능을 자랑하지만, 엔진으로 사용할 때 차이를 반드시 고려

thenicesj.tistory.com

https://thenicesj.tistory.com/681

 

[Docker] Redis

docker 에 대한 설명과 redis 에 대한 설명은 아래 참고 포스팅 참고 바란다. 1. 도커 명령어로 redis 이미지 받아오기 - https://hub.docker.com/_/redis redis - Official Image | Docker Hub Quick reference Supported tags and res

thenicesj.tistory.com

https://thenicesj.tistory.com/772

 

Java 에서 Redis 사용하기 (@RedisHash , ValueOperations)

레디스에 대한 내용과 셋팅은 아래 참고 포스팅 참고 바란다. Java 에서 Redis 를 사용하기 위해서는 2가지 방법이 있다. (물론 이 밖에도 방법은 있다.) @RedisHash 사용 일반 ORM 프로젝트에서 Entity 를

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

웹 통신의 흐름  (19) 2024.06.14
XHTML 이란?  (13) 2024.06.13
공공데이터포탈 이란?  (19) 2024.05.25
Chat GPT 4o 모델  (9) 2024.05.24
IT 거버넌스란?  (6) 2024.05.23

댓글