前提环境:已经实现 主从复制  

准备三台服务器   A    B   C     ,目标:A作为主    B   C 作为从

1:在B 和 C  打开 redis.conf  配置文件,  搜索  REP

2:在注释的命令下面写上     replicaof    master的IP地址    端口

# replicaof <masterip> <masterport>

3:在当前页面找到   masterauth   这行注释, 在下面写上     masteratuh   master的密码

# masterauth <master-password>

redis哨兵机制及其作用 redis哨兵机制配置_redis

4:然后保存文件  :wq     

5:在 A 的 redis 根目录下,打开      sentinel.conf 文件  ,这个文件主要就是实现哨兵机制的配置文件

6:主要有这7个参数要设置

1. protected-mode
2. daemonize
3. logfile
4. dir
5. sentinel  monitor
6. sentinel  auth-pass
7. sentinel  down-after-milliseconds

redis哨兵机制及其作用 redis哨兵机制配置_redis哨兵机制及其作用_02

redis哨兵机制及其作用 redis哨兵机制配置_服务器_03

  1.  protected-mode no                              代表关闭保护模式
  2. daemonize yes                                     开启后台运行
  3. logfile   /usr/local/redis/sentinel/sentinel.log         哨兵的日志文件命名和写在哪个目录下(这边根据自己的实际路径配)
  4. dir         /usr/local/redis/sentinel             设置sentinel相关的文件存放位置(这边根据自己的实际路径配)  
  5. sentinel monitor mymaster A的ip 6379 2            设置master的ip 端口   投票数                                                                        最后一个参数 quorum  设置选举投票通过数, 如果你有5个 sentinel进程,并且给主服务器仲裁设置为2。当master 发生故障时,如果有两个哨兵同时就master不可访问达成一致,则其中两个将尝试启动故障转移。  如果总共至少有三个Sentinel可以访问,则故障转移将被授权实际开始
  6. sentinel auth-pass A的ip 密码       设置A的ip地址  ,所有服务器Redis 密码设置为一个。这样每个Sentinel都可以与其他的Sentinel进行对话,而无需为每个Sentinel 配置访问所有其他Sentinel的密码。 在使用此配置之前,要确保客户端能够将Auth 命令发送到Sentinel 实例                                                                                                                                                  
  7. sentinel down-after-milliseconds mymaster 10000     这边为了设置设置为10秒,生产环境建议不进行改动。当10内其他Sentinels  检测不到master 的心跳时,开始选举,设置故障转移

7:将刚刚在 A 中配置好的 Sentinel 文件复制到  B 和 C 中

8:将所有机子的   redis 相关进程进行关闭  ,开始测试 

redis哨兵机制及其作用 redis哨兵机制配置_redis_04

第1个窗口为  监听 A(master)  的sentinel 日志   

第2、3、4个窗口为   A、B、C   当前状态

redis哨兵机制及其作用 redis哨兵机制配置_配置文件_05

9: 当前Sentinel 状态 , 在未关闭 master 服务前  一主二从

redis哨兵机制及其作用 redis哨兵机制配置_配置文件_06

 10:将A(Master) 进行关闭 ,查看A Sentinel 日志,进行了选举 B 成为了新master  

redis哨兵机制及其作用 redis哨兵机制配置_redis_07

 11:将A 之前 down 掉的master 进行恢复,查看日志发现被 转换成 slave 了 。也就是说当master 挂掉后,在重新恢复后会变成Slave

redis哨兵机制及其作用 redis哨兵机制配置_redis哨兵机制及其作用_08