자주 사용하는 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
'Redis' 카테고리의 다른 글
[redis] redis 프로세스의 설정 파일이 안보이는 부분. (0) | 2017.01.02 |
---|---|
[redis] redis 3.2 에서 포트 접근시 DENIED Redis is running in protected mode 발생 (0) | 2016.12.31 |
[redis] slave-read-only (0) | 2016.03.09 |
[redis] 리눅스 메모리 설정 관련 확인하는 코드 - 메모리 오버커밋, THP (0) | 2016.03.06 |
[redis] BRPOP, BLPOP, BRPOPLPUSH (0) | 2016.03.02 |