redis redis主从集群选举怎样保

    Redis 集群的键空间被分割为16383个槽集群的最大节点数也是16484个。本篇文章主要来看一下redis集群选取情况

为了下面看节点redis主从集群选择的信息,我们先来了解一下每个节点常用信息

从上面列出的三行信息中,从左到右的各个域分别是:节点IDIp地址和端口号,标志(是从节点还是主节点)最后发送PING的时间,最后接收PONG的时间连接状态(connected还是unConnected),节点负责处理的槽

目前集群中搭建了6个节点,三主三从主节点为6379、6380、6381,从节点是6381、6382、6384.

(1)启动集群查看6个节点的服务状态,全部为启动

(2)查看集群各个节点的redis主从集群状态

三主三从,现在6379是其中一个主节点其从节点是6382,以这两個端口为例演示一下redis主从集群选举过程。

(4)现在模拟将6379节点挂掉按照redis集群原理,会将6379节点的从节点选举为6382为主节点

(5)现在查看集群运行状况

可以看到6379节点挂掉之后,6379节点连接不上现在6382节点变成了主节点。

(6) 并且可以从6382节点中得到和6379节点相同的数据内容

(7)現在我们将6379节点重启,查看6379是否会自动加入集群此时在集群中充当的是M节点还是S节点。

查看进程6379端口启动成功。

(8)6379节点变为了6382节点嘚从节点

 测试结果显示如果主节点(6379)宕掉之后,从节点(6382)会自动成为主节点;如果原来的主节点(6379)再次复活那么这个主节点(6379)就会变为目前的主节点(6382)的从节点。ps:目前是在一台机子上测试还需要在多台机子上测试各种情况。

redis复制过程如下:

2、master server接受SYNC命令之后判断,是否有正在进行内存快照的子进程如果有,则等待其结束否则,fork一个子进程子进程把内存数据保存为文件,并发送给slave server

3、master server子進程进程做数据快照时父进程可以继续接收client端请求写数据,此时父进程把新写入的数据放到待发送缓存队列中

4、slave server 接收内存快照文件之後,清空内存数据根据接收的快照文件,重建内存表数据结构

5、master server把快照文件发送完毕之后发送缓存队列中保存的子进程快照期间改变嘚数据给slave server,slave server做相同处理保存数据一致性

当redis集群的主节点故障时Sentinel集群将從剩余的从节点中选举一个新的主节点,有以下步骤:

Sentinel集群的每一个Sentinel节点会定时对redis集群的所有节点发心跳包检测节点是否正常如果一个節点在down-after-milliseconds时间内没有回复Sentinel节点的心跳包,则该redis节点被该Sentinel节点主观下线

当节点被一个Sentinel节点记为主观下线时,并不意味着该节点肯定故障了還需要Sentinel集群的其他Sentinel节点共同判断为主观下线才行。

如果客观下线的redis节点是从节点或者是Sentinel节点则操作到此为止,没有后续的操作了;如果愙观下线的redis节点为主节点则开始故障转移,从从节点中选举一个节点升级为主节点

如果需要从redis集群选举一个节点为主节点,首先需要從Sentinel集群中选举一个Sentinel节点作为Leader

每一个Sentinel节点都可以成为Leader,当一个Sentinel节点确认redis集群的主节点主观下线后会请求其他Sentinel节点要求将自己选举为Leader。被請求的Sentinel节点如果没有同意过其他Sentinel节点的选举请求则同意该请求(选举票数+1),否则不同意

  1. 选择优先级slave-priority最大的从节点作为主节点,如不存在則继续
  2. 选择复制偏移量(数据写入量的字节记录写了多少数据。主服务器会把偏移量同步给从服务器当redis主从集群的偏移量一致,则数據是完全同步)最大的从节点作为主节点如不存在则继续
  3. 选择runid(redis每次启动的时候生成随机的runid作为redis的标识)最小的从节点作为主节点

复制偏移量最大的从节点

runid最小的从节点升级主节点

即Leader最低票数至少为2,当该Sentinel集群中由一个Sentinel节点故障后仅剩的一个Sentinel节点是永远无法成为Leader。

也可鉯由此公式可以推导出Sentinel集群允许1个Sentinel节点故障则需要3个节点的集群;允许2个节点故障则需要5个节点集群。

我要回帖

更多关于 redis主从集群 的文章

 

随机推荐