本文是因为笔者在查询从redis集群中删除一个从节点引发的,网上好多博客说利用redis-trib.rb命令,但是在redis5.0之后,该命令就已经被废弃,集群操作使用redis-cli
闲话少说,下面是集群的常见命令
客户端登录redis
redis-cli -h 192.168.3.117 -p 6380
显示集群信息
cluster nodes
为集群中的主节点(192.168.3.117)添加从节点(192.168.3.116),后面为主节点的id,先退出客户端,在redis的src目录下执行
redis-cli --cluster add-node 192.168.3.116:6380 192.168.3.117:6379 --cluster-slave --cluster-master-id asdfjlasjdflasdjflasdfjlasdf
另外,如果添加的从节点之前保存有数据,必须删除,否则添加失败。删除从节点在redis.conf中配置的文件目录对应位置的文件。
从集群中删除从节点,后面为从节点的id。
redis-cli --cluster del-node 192.168.1.172:6380 b97cde23f3c1a1b13e42728562180355b985831a
下面的命令我还没有试,先记录下来
删除主节点,先要把主节点的槽移到其他节点去
要迁移槽的主节点
./redis-cli --cluster reshard 192.168.1.172:6379
将槽均衡到其他节点
./redis-cli --cluster rebalance --cluster-threshold 1 192.168.1.172:6379
#向集群中添加节点#
./redis-cli --cluster add-node 192.168.1.172:6379 192.168.1.172:6380
#将集群外部redis实例中的数据导入到集群中去#
./redis-cli --cluster import 192.168.1.172:6379 --cluster-from 192.168.1.172:6382 --cluster-copy
Cluster-from后面跟外部redis的ip和port
如果集群中已有同样的key,如果需要替换,可以cluster-copy和cluster-replace联用,这样集群中的key就会被替换为外部的