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