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
'Backend > Redis' 카테고리의 다른 글
redis 옵션 정리 (0) | 2021.04.27 |
---|---|
Redis 구성 방법 (0) | 2021.04.27 |
맥북 redis-cli 설치 및 명령어 정리 (0) | 2021.04.15 |
Redis 커넥션 풀 (0) | 2021.04.15 |
Redis null 값 캐싱하지 않기 (0) | 2021.04.15 |