首页  >  文章  >  数据库  >  Redis集群故障转移如何实现

Redis集群故障转移如何实现

coldplay.xixi
coldplay.xixi原创
2020-06-30 13:09:462017浏览

Redis集群故障转移的方法:1、从所有的从节点里面选举出一个新的主;2、选举出的新主会执行slaveof no one把自己的状态从slave变成master;3、撤销已下线的主节点的槽指派,并把这些槽位重新指派给自己。

Redis集群故障转移如何实现

Redis集群故障转移的方法:

一、故障检测
- 1.集群中所有节点都会向其它节点发送PING消息,当在规定的时间内,没有收到对应的PONG消息,就把此节点标记为疑似下线;

- 2.在发送的PING消息里面,会带着当前集群和节点的信息;通过这种方式,即可检测节点的存活,又能维护集群信息的统一性,不过有一定

的时延;

- 3.疑似下线不是真的下线,只有满足以下条件才是真的下线;

- 主节点并且是被分配了slot槽位的主节点中有超过一半的节点都认为此节点疑似下线,才能真的下线;

- 4.当某个节点通过消息得知有一个节点的疑似下线投票已经超过集群一半的时候,会发送一个标识此节点下线的广播消息;

- 5.其它节点收到某节点已经下线的广播后,把自己内部的集群维护信息也修改为节点已下线状态。

二、故障转移
- 1.从所有的从节点里面选举出一个新的主;

- 2.选举出的新主会执行slaveof no one把自己的状态从slave变成master;

- 3.撤销已下线的主节点的槽指派,并把这些槽位重新指派给自己;

- 4.新的主节点向集群广播一条PONG消息,通过这个消息告诉所有集群节点:自己已经变成了主节点,接管了原来的主节点;

- 5.新的主节点开始接收和处理与自己槽位相关的命令请求。

相关学习推荐:redis视频教程

以上是Redis集群故障转移如何实现的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn