概述
从新搭建一套redis cluster环境,开始redis cluster功能测试。
redis-trib.rb create --replicas 1 192.168.201.33:7001 192.168.201.33:7002 192.168.201.34:7003 192.168.201.34:7004 192.168.201.35:7005 192.168.201.35:7006
高可用
redis-trib.rb check 192.168.201.33:7001
>>> Performing Cluster Check (using node 192.168.201.33:7001)
M: 1617e0e394b5c74be6a6b804980c2c857d352522 192.168.201.33:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: 0e52767dbadee66cf788494501fdd7f23c66b935 192.168.201.34:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 7142f5825e214522d12a3d01b50c79e620a00a2d 192.168.201.34:7004
slots: (0 slots) slave
replicates 1617e0e394b5c74be6a6b804980c2c857d352522
S: 46967bbb36422de8af09545dd670a07ccb0cef52 192.168.201.33:7002
slots: (0 slots) slave
replicates d70eae6f6ae651b8af3f07a3137716f7dfaf2d84
S: c8d5cccb9263263512cb26e3fc776173899a99cf 192.168.201.35:7006
slots: (0 slots) slave
replicates 0e52767dbadee66cf788494501fdd7f23c66b935
M: d70eae6f6ae651b8af3f07a3137716f7dfaf2d84 192.168.201.35:7005
slots:10923-16383 (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
由此可见,6个节点的主从关系如下:
master slave
192.168.201.33:7001 192.168.201.34:7004
192.168.201.34:7003 192.168.201.35:7006
192.168.201.35:7005 192.168.201.33:7002
测试
- 把master1,33:7001,杀掉,看看它对应的34:7004是否能自动切换成master
ps -ef|grep redis
root 8800 1 0 8月05 ? 00:01:26 /usr/local/bin/redis-server 192.168.201.33:7001 [cluster]
root 8998 1 0 8月05 ? 00:01:25 /usr/local/bin/redis-server 192.168.201.33:7002 [cluster]
kill -9 8800
rm -f /var/run/redis_7001.pid
redis-trib.rb check 192.168.201.33:7001
[ERR] Sorry, can't connect to node 192.168.201.33:7001
主备切换完成:192.168.201.34:7004切换成master节点
redis-trib.rb check 192.168.201.33:7002
>>> Performing Cluster Check (using node 192.168.201.33:7002)
S: 46967bbb36422de8af09545dd670a07ccb0cef52 192.168.201.33:7002
slots: (0 slots) slave
replicates d70eae6f6ae651b8af3f07a3137716f7dfaf2d84
M: 7142f5825e214522d12a3d01b50c79e620a00a2d 192.168.201.34:7004
slots:0-5460 (5461 slots) master
0 additional replica(s)
M: d70eae6f6ae651b8af3f07a3137716f7dfaf2d84 192.168.201.35:7005
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: c8d5cccb9263263512cb26e3fc776173899a99cf 192.168.201.35:7006
slots: (0 slots) slave
replicates 0e52767dbadee66cf788494501fdd7f23c66b935
M: 0e52767dbadee66cf788494501fdd7f23c66b935 192.168.201.34:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
- 切换成master后的34:7004,是否可以直接读取数据
redis-cli -h 192.168.201.34 -p 7004
192.168.201.34:7004> get mykey1
"111"
- 再试着把33:7001给重新启动,恢复过来,自动作为slave挂载到了34:7004上面去
info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.201.33,port=7001,state=online,offset=81159,lag=1
master_replid:6600fe68184059e92b5d83123101d970553eb9ca
master_replid2:7685d11ef13ecae5d512fa8452e3b1a4613fb56f
master_repl_offset:81159
second_repl_offset:80852
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:81159
网友评论