cluster_addslots
Redis CLUSTER ADDSLOTS
레디스 클러스터 교육 |
레디스 정기점검/기술지원 Redis Technical Support |
레디스 엔터프라이즈 서버 Redis Enterprise Server |
---|
Redis CLUSTER ADDSLOTS
CLUSTER ADDSLOTS는 마스터 서버에 슬롯을 추가하는 명령이다.
이 문서는 버전 3.2.0을 기준으로 만들었습니다.
사용법
할당되지 않은 슬롯을 할당할 때 사용한다.
이미 다른 마스터 서버에 할당되어 있으면 에러가 난다.
단독 마스터만 있어도 addslots이 가능하다.
즉, 여러 대의 마스터로 클러스터가 구성되지 않아도 addslots은 가능하다.
이 명령은 redis-cli -c 모드로 접속하지 않아도 된다.
설명
- 7000번 서버에 0번 슬롯을 할당할 때: 확인은 cluster nodes로 하고, 마지막에 나온 숫자 0이 할당된 슬롯이다.
- 7000번 서버에 1,2,3번 슬롯을 할당할 때: 확인하면 마지막에 나온 0-3, 4개 슬롯이 할당된 것을 알 수 있다.
- 많은 슬롯을 한번에 할당하는 방법: 16384개 슬롯을 이런 방법으로 어떨게 하나씩 할당한단 말인가?
한 번에 할당할 때는 리눅스 프롬프트에서 실행한다. addslots 다음에 있는 {4..16383}은 redis-cli 기능이 아니고 쉘(shell) 기능이다. - cluster info 명령으로 확인 결과: 두 줄만 간락히 표시했다.
슬롯이 모두 할당되어야 state가 ok가 된다.
127.0.0.1:7000> cluster info
cluster_state:ok
cluster_slots_assigned:16384 - redis-trib.rb로 클러스터를 구성할때는 최소 3개 노드가 있어야 하지만, cluster 명령을 직접 사용하면 노드 개수와 상관없이 클러스터를 구성할 수 있다.
127.0.0.1:7000> cluster addslots 0
127.0.0.1:7000> cluster nodes
7000 myself,master - 0 0 0 connected 0
127.0.0.1:7000> cluster nodes
7000 myself,master - 0 0 0 connected 0
127.0.0.1:7000> cluster addslots 1 2 3
127.0.0.1:7000> cluster nodes
7000 myself,master - 0 0 0 connected 0-3
127.0.0.1:7000> cluster nodes
7000 myself,master - 0 0 0 connected 0-3
# src/redis-cli -p 7000 cluster addslots {4..16383}
127.0.0.1:7000> cluster nodes
7000 myself,master - 0 0 0 connected 0-16383
127.0.0.1:7000> cluster nodes
7000 myself,master - 0 0 0 connected 0-16383
주의 사항
- 슬롯 할당은 슬레이브 서버에 해도 에러는 발생하지 않는다. 하지만 아무 효과가 없다. 슬롯 할당은 마스터 서버에만 하세요.
- 슬레이브 서버에 할당된 슬롯은 마스터 서버에서 다시 할당하면 마스터 서버로 할당된다. 명령을 실행한 마스터의 슬레이브이건 다른 마스터에 슬레이브이건 상관없다. 하지만 다른 마스터 서버에 할당된 슬롯은 할당할 수 없다.
명령문
CLUSTER ADDSLOTS slot [slot ...]
- 이 명령은 version 3.0.0 부터 사용할 수 있다.
- 논리적 처리 소요시간은 O(N)이다. N은 인수로 주어진 슬롯의 개수이다.
Clients for Java | Jedis, Lettuce | Clients for C | Hiredis |
<< CLUSTER FORGET | CLUSTER ADDSLOTS | CLUSTER ADDSLOTSRANGE >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.