七叶笔记 » 数据库 » Redis Cluster添加、删除的完整操作步骤

Redis Cluster添加、删除的完整操作步骤

1. 创建redis集群

注:更多redis集群创建,请参阅

Redis Cluster集群部署搭建            

2. 检查集群状态

~~~~~~~~~~~~~~~~~~~~~~~~~~~添加节点~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3. 添加新节点redis-trib.rb add-node 新增节点名  原集群节点名

4. 查看当前集群状态,9000是一个空的Master

5. 为9000分配slot, redis的solt是固定的,就16384个,只能从其他节点获取slot,然后分配到9000

6. 可以看到,9000已经分配到的slot是0-98 5461-5561 10923-11021

~~~~~~~~~~~~~~~~~~~~~~~~~~~将9000变为slave~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7. 希望将9000变成7000的slave,但是由于有slot,执行失败,需要先转移slot

8. 删除节点也是不可以的,总之,只要上面有slot。redis是不会让你删除的,而且需要人工介入,rebalance这些slot之后才行

9.重新分配9000的slot到7000上

10. 查询,可以看到9000已经没有slot了

11. 再次执行命令,将9000变成7000的slave,成功

12. 查看状态,9000已经成为7000的slave

13. 删除节点9000,成功删除

14. 连接9000,发现已经shutdown,无法连接

15. 查看集群状态,9000已经不见了

~~~~~~~~~~~~~~~~~~~~~~~~~~~再次启动9000,发现不同~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

16. 再次启动9000,发现一个有意思的事情。上面检查7000,集群已经没有9000了

17. 但是查看9000,确仍然能看到整个集群的信息。

说明,在删除节点的过程,只是在原有集群中删除9000的信息。但是9000自身的信息并没有被删除,依然保留全部的信息,只是9000实例被关闭而已。

18. 而9000的全部信息,是记录在自身目录的nodes.conf中

19. 到7001等其他节点中查看,nodes.conf已经没有9000的信息

~~~~~~~~~~~~~~~~~~~~~~~~~~~再次添加9000,以及9001~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

20. 将9000和9001再次加入集群,开始下面的折腾。

注意:需要将9000和9001下的redis.conf外的文件清除,重启。然后才能再次加入集群。不然会遇到错误:

21. 加入集群

22. 现在是两个空的Master节点

23. 重分配100个slot到9000上,其实redis很聪明的,我连接的是9001,但是在分配的时候,它会问你,receiving node是谁,Source node 是谁。

24. 查看分配情况,redis还是很聪明灵活的。

25. 将9001添加为9000的slave节点 redis-cli -p <slave IP:port> cluster nodes <Master ID 号>

经过各种折腾,redis添加,删除,重分配slot等操作,都测试完了。

中间有很多命令输出部门,视乎有点重复。但是为了更好的阅读理解,观察每一步操作的变化。后面查阅也更容易一些。 毕竟,年纪大了,记性不好。好多自己写过的blog,回头翻阅的时候,发现某些步骤,不是很好理解了。虽然我的blog,都是基于自己测试的结果,但是依然会忘记。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对七叶笔记的支持。

相关文章