参考文章:http://doc.redisfans.com/topic/cluster-tutorial.html
一、cluster info :打印集群信息
二、cluster nodes:列出集群中已知的所有节点(node),以及这些节点相关 信息
可以看到上面有六个节点,三个主节点(master),三个备份节点(slave),其中有一个端口为7001的主节点前有myself节点代表当前客户端连接的服务,三个主节点的槽点分别是7000(0-5460)、7001(5461-10922)、7002(10923-16383);
三、删除从节点
./redis-trib.rb del-node 127.0.0.1:7004 97093dbf1f03d773400423feed29c24c8995284b
注解:127.0.0.1:7004 从节点;97093dbf1f03d773400423feed29c24c8995284b 从节点ID
四、添加从节点,将刚才删除掉的从节点添加到集群中去,首先看一下集群中的节点状态:
从上图我们可以看到从节点已经消失了,接下来我们删除从节点:
rm -rf nodes-7004.conf
添加从节点
./redis-trib.rb add-node --slave --master-id a4fe675ade1fb5fc9b82b5968d1e8099ac0d5444 127.0.0.1:7004 127.0.0.1:7005
--slave 表示添加的是从节点
--master-id a4fe675ade1fb5fc9b82b5968d1e8099ac0d5444 主节点的node-id
127.0.0.1:7004 主节点
127.0.0.1:7005 集群中任意一个旧节点
查看一下添加从节点成功后的状态,如下图:
五、删除主节点,如果主节点被删除从节点将会自动代替主节点,如果主节点有分配的槽点(slot)那么先去掉分配的槽点(slot),然后再删除节点;
取消节点下分配的槽点(slot):
./redis-trib.rb reshard 127.0.0.1:7001
如下图输入要去掉的槽点(slot)个数:
接下来的过程是输入要删除槽点后的过程:
接下来的执行过程会有一个让我们输入yes/no是否移动槽点(slot)的提问,我们输入yes,执行的结果是:
通过上图我们可以卡到节点127.0.0.1:7001的槽点已经全部移动到节点127.0.0.1:7002上了;
接下来就是真正的删除槽点(slot):
六、新增主节点
./redis-trib.rb add-node 127.0.0.1:7001 127.0.0.1:7003
127.0.0.1 新增的主节点
127.0.0.1 任意的一个旧节点
重新分配槽点(slot)
./redis-trib.rb reshard 127.0.0.1:7001
命令执行过程中的操作跟删除主节点的操作恰好相反
如上图说明执行成功!!