Redis CLUSTER ADDSLOTS

<< CLUSTER FORGET CLUSTER DELSLOTS >>

Redis CLUSTER ADDSLOTS

CLUSTER ADDSLOTS는 마스터 서버에 슬롯을 추가하는 명령이다.

이 문서는 버전 3.2.0을 기준으로 만들었습니다.

사용법

할당되지 않은 슬롯을 할당할 때 사용한다.
이미 다른 마스터 서버에 할당되어 있으면 에러가 난다.
단독 마스터만 있어도 addslots이 가능하다.   즉, 여러 대의 마스터로 클러스터가 구성되지 않아도 addslots은 가능하다.   이 명령은 redis-cli -c 모드로 접속하지 않아도 된다.


설명

  • 7000번 서버에 0번 슬롯을 할당할 때:   확인은 cluster nodes로 하고, 마지막에 나온 숫자 0이 할당된 슬롯이다.
  • 127.0.0.1:7000> cluster addslots 0
    127.0.0.1:7000> cluster nodes
    7000 myself,master - 0 0 0 connected 0
  • 7000번 서버에 1,2,3번 슬롯을 할당할 때:   확인하면 마지막에 나온 0-3, 4개 슬롯이 할당된 것을 알 수 있다.
  • 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
  • 많은 슬롯을 한번에 할당하는 방법: 16384개 슬롯을 이런 방법으로 어떨게 하나씩 할당한단 말인가?
    한 번에 할당할 때는 리눅스 프롬프트에서 실행한다.   addslots 다음에 있는 {4..16383}은 redis-cli 기능이 아니고 쉘(shell) 기능이다.
  • # 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
  • cluster info 명령으로 확인 결과: 두 줄만 간락히 표시했다.   슬롯이 모두 할당되어야 state가 ok가 된다.
    127.0.0.1:7000> cluster info
    cluster_state:ok
    cluster_slots_assigned:16384
  • redis-trib.rb로 클러스터를 구성할때는 최소 3개 노드가 있어야 하지만,   cluster 명령을 직접 사용하면 노드 개수와 상관없이 클러스터를 구성할 수 있다.

주의 사항

  • 슬롯 할당은 슬레이브 서버에 해도 에러는 발생하지 않는다.   하지만 아무 효과가 없다.   슬롯 할당은 마스터 서버에만 하세요.
  • 슬레이브 서버에 할당된 슬롯은 마스터 서버에서 다시 할당하면 마스터 서버로 할당된다.   명령을 실행한 마스터의 슬레이브이건 다른 마스터에 슬레이브이건 상관없다.   하지만 다른 마스터 서버에 할당된 슬롯은 할당할 수 없다.

명령문

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 DELSLOTS >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 返事がかかってなれば、メールでお知らせします。