자주 사용하는 redis cluster 명령어들 


클러스터 접속하는 방법이다. 그냥 redis-cli -p 7000 커맨드로 redis cluster에 접근할 수 없다.

slave 없이 master로 모인 정보이다.


$ ./src/redis-cli  -c -p 7000

> cluster nodes

928190fd... 1.1.1.1:7000 master - 0 1466475134595 2 connected 3277-6553

bb90967f... 1.1.1.2:7000 master - 0 1466475134595 4 connected 9830-13106

d2c52014... 1.1.1.3:7000 master - 0 1466475133995 1 connected 0-3276

7a31e871... 1.1.1.4:7000 master - 0 1466475134995 3 connected 6554-9829

ffc4b321... 1.1.1.5:7000 myself,master - 0 0 5 connected 13107-16383





만약 slave가 있다면, slave 뒤에 master 서버값이 들어가 있는 것을 볼 수 있다.  


> cluster nodes

6b38bb... 1.1.1.1:7379 master - 0 0 25 connected 0-5460                      

7bb78c... 127.0.0.1:7380 master - 0 1449730618304 2 connected 5461-10922       

164888... 127.0.0.1:7381 master - 0 1449730618304 3 connected 10923-16383      

b8b5ee... 127.0.0.1:7382 slave 6b38bb... 0 1449730618304 25 connected  




"키"가 어느 키슬롯에 저장될 지 보고 싶다면, 키 값을 살펴본다.

(keys  커맨드를 사용하려면 클러스터의 key slot를 찾고, 해당 key의 값을 찾는다.)

> cluster keyslot 20000226

(integer) 475

> cluster keyslot a

(integer) 15495




하지만, keys * 커맨드로 전체 키를 찾을 수 없도록 해놯고 SCAN을 쓸 수 있도록 권장하고 있다.


https://github.com/antirez/redis/issues/1962


You can't. You would have to ask each node seperately. But please avoid KEYS * whenever possible. If you really must iterate the whole keyspace of an instance use SCAN.


Btw, this issue tracker should be used for bugs or improvements to the Redis server. For questions like your's please ask on the mailing list or in the irc channel.






key *는 클러스터 중 특정 서버에 있을 때만 볼 수 있다.


> set a a

-> Redirected to slot [15495] located at 172.17.64.45:7000

OK


> set b b

-> Redirected to slot [3300] located at 172.17.64.42:7000

OK


> keys *

1) "b"


> del a

-> Redirected to slot [15495] located at 172.17.64.45:7000

(integer) 1


> del b

-> Redirected to slot [3300] located at 172.17.64.42:7000

(integer) 1





redis cluster : scan에 대한 내부 동작 원리를 보고 싶다면 다음 정보를 확인한다.


http://www.paluch.biz/blog/162-iterate-over-all-keys-in-a-redis-cluster.html






기존 info 명령어처럼 cluster 정보를 확인할 수 있다.


> cluster info

cluster_state:ok

cluster_slots_assigned:16384

cluster_slots_ok:16384

cluster_slots_pfail:0

cluster_slots_fail:0

cluster_known_nodes:5

cluster_size:5

cluster_current_epoch:5

cluster_my_epoch:1

cluster_stats_messages_sent:6824123

cluster_stats_messages_received:6824123







Posted by 김용환 '김용환'

댓글을 달아 주세요