Redis哨兵高可用架构

Redis哨兵高可用架构

  • 1、Redis哨兵高可用架构简介
  • 2、redis哨兵架构搭建步骤
  • 3、哨兵leader选举流程

1、Redis哨兵高可用架构简介

Redis哨兵高可用架构是以一种哨兵和主从节点配合工作的架构模式,哨兵只负责监测节点的运行情况以及主节点挂掉之后的选举情况,真正的主从节点负责数据的读写。
哨兵也是Redis的一个实例,通常是检测主节点的,当主节点挂掉之后,会重新选取新的主节点然后让客户端访问,大致如下图所示:

Redis哨兵高可用架构_第1张图片

2、redis哨兵架构搭建步骤

1、复制一份sentinel.conf文件,如下命令

cp sentinel.conf sentinel-26379.conf

2、将相关配置修改为如下值:
其它配置:


port 26379 

daemonize yes 

pidfile "/var/run/redis-sentinel-26379.pid" 

logfile "26379.log" 

dir "/usr/local/redis-5.0.3/data"

核心配置:




sentinel monitor mymaster 192.168.0.60 6379 2 

3、启动sentinel哨兵实例,命令如下:

src/redis-sentinel sentinel-26379.conf

4、查看sentinel的info信息
src/redis-cli
127.0.0.1:26379>info
可以看到Sentinel的info里已经识别出了redis的主从,如下所示:

Redis哨兵高可用架构_第2张图片


5、可以自己再配置两个sentinel,端口26380和26381,注意上述配置文件里的对应数字都要修改

Redis哨兵高可用架构_第3张图片

3、哨兵leader选举流程

当一个master服务器被某sentinel视为下线状态后,该sentinel会与其他sentinel协商选出sentinel的leader进行故障转移工作。每个发现master服务器进入下线的sentinel都可以要求其他sentinel选自己为sentinel的leader,选举是先到先得。同时每个sentinel每次选举都会自增配置纪元(选举周期),每个纪元中只会选择一个sentinel的leader。如果所有超过一半的sentinel选举某sentinel作为leader。之后该sentinel进行故障转移操作,从存活的slave中选举出新的master,这个选举过程跟集群的master选举很类似。
哨兵集群只有一个哨兵节点,redis的主从也能正常运行以及选举master,如果master挂了,那唯一的那个哨兵节点就是哨兵leader了,可以正常选举新master。
不过为了高可用一般都推荐至少部署三个哨兵节点。为什么推荐奇数个哨兵节点原理跟集群奇数个master节点类似。

你可能感兴趣的:(Redis,redis)