redis集群之哨兵模式

247 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 前面讲了搭建一个主从备份模式的redis集群,但是主从备份集群存在一个很大的问题就是,当master节点挂掉后,slave节点不能主动切换成master节点。所以在哨兵模式下,哨兵就替换了手工切换master节点的工作。下面就来搭一个哨兵模式的集群吧。

搭建主从集群

哨兵模式是在主从集群的基础上增加哨兵节点实现的,所以还是需要一个主从集群。关于主从集群的搭建方法参考:redis集群之主从复制

  • redis-node1:6379(主)
  • redis-node2:6380(从)
  • redis-node3:6381(从)

搭建哨兵集群

哨兵集群使用的配置文件是sentinel.conf,可以到官网下载。 配置如下:

#哨兵服务的端口,这里采用配置文件的方式,则依次配置成26379、26380、 26381,也可以通过docker启动的时候映射端口
port 26379
#禁止保护模式
protected-mode no
#配置监听的主服务器 192.168.11.128 6379
#mymaster代表服务器名称,可以自定义
#2代表只有两个或者两个以上的烧饼认为主服务器不可用的时候,才会做故障切换操作
sentinel monitor mymaster 192.168.11.128 6379 2
#sentinel auth-pass 定义服务的密码
#mymaster服务名称
#123456 Redis服务器密码
sentinel auth-pass mymaster 123456

启动哨兵:

# redis-sentinel sentinel.conf
docker run -idt --name sentinel1 -p 26379:26379 -v /usr/local/redis/sentinel1/sentinel.conf:/etc/redis/sentinel.conf -v /usr/local/redis/sentinel1/data:/data  --privileged=true docker.io/redis redis-sentinel /etc/redis/sentinel.conf

至此完成哨兵集群的配置 在这里插入图片描述 在这里插入图片描述

测试哨兵

接下来我们停掉节点1,看看哨兵是否成功切换master节点。 在这里插入图片描述 很显然,切换成功,哨兵选举出node3当选master节点,node2还是作为slave节点。 在这里插入图片描述 主从备份是仍然可用的。