Backend/Redis
Redis Cluster 동작방식
findmypiece
2021. 4. 28. 09:02
728x90
클러스터 구동시 노드별로 데이터를 저장할 수 있는 hashslot을 할당받게 된다.
그리고 데이터 저장시 Redis 자체 해시 알고리즘에 의해 key에 맞는 hashslot이 선택되어 저장된다.
데이터를 읽을 때에는 역시 자체 해시 알고리즘에 의해 key 에 맞는 hashslot에서 데이터를 읽게 된다.
즉, 특정 키는 특정노드에만 저장된다.
그런데 어쨋든 클라이언트 입장에서는 이러한 Read/Write 는 를 수행하려면 특정 노드에 일단 연결이 되어야 한다.
예를 들어 1~3 까지의 노드가 있고 A key에 해당하는 hashslot이 3노드에 할당된 상태라고 가정해보자.
그런데 클라이언트가 1번 노드에 연결되어 A key를 Read/Write 하려고 하면 어떻게 될까?
이때는 3번 노드로 Redirection 후 Read/Write 를 수행하게 된다.
이게 가능한 이유는 모든 노드가 해시 알고리즘을 공유하고 있기 때문이다.
Redis Cluster 구성에서 클라이언트가 접속을 시도할 경우 어떤 방식으로 노드가 선택되나?
아마도 라운드로빈 이겠지?
728x90