1.环境
源 192.168.1.185的6379
目标 192.168.1.91的7001,7002 192.168.1.92的7003,7004 192.168.1.94的7005,7006
2.准备存储文件
在集群任意节点上查看节点信息,发现当前192.168.1.91的7001端口是master
在192.168.1.185上查询当前key数量并保存,将dump.rdb和appendonly.aof文件发送到192.168.1.91上
3.数据恢复到集群
切换到192.168.1.91上查看集群状态redis-trib.rb check 192.168.1.91:7001
从刚才的集群状态得知
192.168.1.91:7001 的runid为 f2ebf72a78f2637eead82c219f2fca737a36a371 ,其有 5461 个slots
192.168.1.92:7005 的runid为 99439ae72385633d3c9530a5e4f2afdca22a3e25 ,其有 5462 个slots
192.168.1.94:7003 的runid为 19bc53185ae3e103cf4e9ce15772d88f4900256a ,其有 5461 个slots
将92的slots移动到91上redis-trib.rb reshard --from 19bc53185ae3e103cf4e9ce15772d88f4900256a --to f2ebf72a78f2637eead82c219f2fca737a36a371 --slots 5461 --yes 192.168.1.91:7001
将94的slots移动到91上redis-trib.rb reshard --from 99439ae72385633d3c9530a5e4f2afdca22a3e25 --to f2ebf72a78f2637eead82c219f2fca737a36a371 --slots 5462 --yes 192.168.1.91:7001
查看slots是否全部在91上redis-trib.rb check 192.168.1.91:7001
查找192.168.1.91的存储路径,删除存储文件
复制存储文件cp /appendonly.aof /dump.rdb /root/
查询当前key数量是否和185单点数量一样redis-cli -c -p 7001 dbsize
91将slots移动到92上redis-trib.rb reshard --from f2ebf72a78f2637eead82c219f2fca737a36a371 --to 19bc53185ae3e103cf4e9ce15772d88f4900256a --slots 5461 --yes 192.168.1.91:7001
91将slots移动到94上redis-trib.rb reshard --from f2ebf72a78f2637eead82c219f2fca737a36a371 --to 99439ae72385633d3c9530a5e4f2afdca22a3e25 --slots 5462 --yes 192.168.1.91:7001
4.测试
查询节点是否归位redis-trib.rb check 192.168.1.91:7001
查询每个主节点key总量,是否和185单点一样redis-cli -c -p 7001 dbsize
redis-cli -c -p 7003 -h 192.168.1.92 dbsize
redis-cli -c -p 7005 -h 192.168.1.94 dbsize