集群管理工具redis-trib.rb已经被废弃,所以不用安装ruby啥的了,当时redis-trib.rb的功能,现在已经集成到了redis-cli中,并且可以在有认证的情况执行了,可以通过./redis-cli --cluster help查看使用方式。

环境

#创建集群#

./redis-cli --cluster create 192.168.1.172:6379 192.168.1.172:6380 192.168.1.172:6381 查看所有槽已经均匀分配

#检查集群#

./redis-cli --cluster check 192.168.1.172:6379 查看集群一切正常

#查看集群key、slot、slave分布信息#

./redis-cli --cluster info 192.168.1.172:6379

#在线迁移槽#

./redis-cli --cluster reshard 192.168.1.172:6379 选择一个目标节点的id 源选择all

#平衡各节点槽数量#

./redis-cli --cluster rebalance --cluster-threshold 1 192.168.1.172:6379 已平衡

#删除集群节点#

./redis-cli --cluster del-node 192.168.1.172:6379 b97cde23f3c1a1b13e42728562180355b985831a 这里必须是没有槽的节点,所以必须先移除槽,否则报如下错误 通过reshard迁移走槽后,删除成功,并且关闭了该节点 被删除的node重启后,依然记得集群中的其它节点,这是需要执行cluster forget nodeid来忘记其它节点

#添加集群节点#

./redis-cli --cluster add-node 192.168.1.172:6379 192.168.1.172:6380 再平衡各节点slot数量

#将集群外部redis实例中的数据导入到集群中去#

./redis-cli --cluster import 192.168.1.172:6379 --cluster-from 192.168.1.172:6382 --cluster-copy Cluster-from后面跟外部redis的ip和port 如果只使用cluster-copy,则要导入集群中的key不能在,否则如下: 如果集群中已有同样的key,如果需要替换,可以cluster-copy和cluster-replace联用,这样集群中的key就会被替换为外部的