예전 포스팅에서 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
https://thenicesj.tistory.com/681
https://thenicesj.tistory.com/772
'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 |
댓글