启用哨兵模式的方法:
1、修改sentinel.conf的配置
protected-mode no #禁止保护模式
sentinel monitor mymaster 127.0.0.1 6379 1
#配置监听的主服务器,sentinel monitor代表监控,mymaster代表服务器的名称,随便起一个,127.0.0.1代表监控的主服务器,一般是一个公网ip,用127.0.0.1只是为了本地测试,6379代表端口,1代表只有1个或1个以上的哨兵认为主服务器不可用的时候,才会进行failover操作(failover操作就是从剩下的从机中重新选主机)。
sentinel auth-pass <master-name> <password>
#sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
2、启动哨兵
redis-sentinel sentinel.conf
拓展:
如果主机宕机了,此时哨兵模式会选一个新的主机,那么当这个宕机的旧主机又连回来了,这个时候哨兵会检测到并将其设置为从机。
哨兵模式重要配置:
#哨兵模式运行实例的端口
port 26379
#哨兵的工作目录
dir /tmp
#哨兵监控的主节点的ip port
#master-name 可以自己命名 只能由"A-Z"、“0-9”、".-_"组成
#quorum 配置多少个哨兵认为master主节点失联,就进行故障转移
#sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
#当在redis实例中开启了requirepass foobared授权密码时 哨兵也需要配置连接密码才能正常工作
#注意主从机一定要设置同样的密码
#sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster MYSUPER–secret-0123passw0rd
#指定多少毫秒进行一次检测,默认是30秒
#sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
#这个配置指定了在发生failover主从切换时最多可以有多少个slave同时对新master进行同步。数字越小意味着完成所有同步时间越长,但是数字太大了会导致多个从机同时处在同步过程而不能提供读数据服务,这样子服务器的压力会有一个短暂的峰值。所以尽可能设置合理的数字
#sentinel parallel-syncs <master-name> <numreplicas>
sentinel parallel-syncs mymaster 1
#故障转移的超时时间
#sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000
#配置发生警告级别事件后会执行的脚本
#如果脚本返回1,表示正常结束
#如果脚本返回2或者更大,则会重新调用脚本
#如果脚本中断,则会重新执行
#如果脚本超过60s,则脚本会被中断然后重新执行
#sentinel notification-script <master-name> <milliseconds>
sentinel notification-script mymaster /var/redis/notify.sh
#发生主从转换后会调用的脚本
#调用时会传递以下参数:
#<master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
#sentinel client-reconfig-script <master-name> <script-path>
sentinel client-reconfig-script mymaster /var/redis/reconfig.sh