# 哨兵实例运行端口 默认26379
port 26379
 
# 后台运行(以守护进程方式运行,默认no)
daemonize no
 
# 如果以后台的方式运行,我们就需要指定一个pid进程文件
pidfile /var/run/redis-sentinel.pid
 
# 日志的文件位置名
logfile ""
 
# 哨兵的工作目录
dir /tmp
 
# 哨兵监控的redis主节点的ip port
# mymaster 可以自己命名的主节点名字 只能由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 授权密码 这样所有连接Redis实例的客户端都要提供密码
# 设置哨兵连接主从的密码 注意必须为主机从机都设置一样的验证密码
# sentinel monitor <master-name> <password>
# sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
 
# 指定多少毫秒之后,主节点没有应答哨兵  此时,哨兵主观上认为主节点下线默认30s
# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
 
# 这个配置指定了在发生failover(主备切换)时最多可以有多少个slave同时对新的master进行同步
# 这个数字越小 完成 failover所需的时间就越长
# 这个数字越大 就意味着多的slave因为replication而不可用
# 可以将值设置为1来保证每次只有一个slave处于不能处理命令请求的状态
# sentinel parallel-syncs <master-name> <numreplicas>
sentinel parallel-syncs mymaster 1
 
# 故障转移的超时时间 failover-timeout可以用在以下方面:
# 1、同一个哨兵对同一个主节点两次failover之间的间隔时间
# 2、当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的主节点那里# # 同步数据时
# 3、当想要取消一个正在进行的failover所需要的时间
# 4、当进行failover时,配置所有从节点指向新的主节点所需的最大时间。不过,即使过了这个超时时间。从# 节点依然会被正确配置指向主节点,但是就不按parallel-syncs所配置的规则来
# 默认三分钟
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000
 
# SCRIPTS EXECUTION
 
# 配置当某一事件发生时所需要执行的脚本,可以通过脚本来通知管理员,例如当系统运行不正常时发邮件通知
# 相关人员
# 对于脚本的运行结果规则
# 若脚本执行后返回1,那么该脚本稍后会被再次执行,重复次数默认为10次
# 若脚本执行后返回2,或者大于2,脚本将不会再被执行
# 如果脚本在执行过程中由于收到系统中断信号被终止了,则同返回值为1时的行为相同
# 一个脚本的最大执行时间为60s,如果超过这个时间,脚本会被一个SIGKILL信号终止,之后重新执行
 
# 通知型脚本:当哨兵有任何警告级别的事件发生时(比如说redis实例的主管失效和客观失效--),将会去调
# 用这个脚本,这时这个脚本应该通过邮件,SMS等方式去通知系统管理员关于系统不正常运行的信息。调用该
# 脚本时,将传给脚本两个参数,一个是事件的类型,一个是事件的描述。如果sentinel.conf配置文件中配
# 置了这个脚本路径,那么必须保证这个脚本存在于这个路径,并且是可执行的,否则哨兵无法正常启动成功
# shell编程
# sentinel notification-script <master-name> <script-path>
# sentinel notification-script mymaster /var/redis/notify.sh
 
# CLIENTS RECONFIGURATION SCRIPT
# 客户端重新配置主节点参数脚本
# 当一个主节点由于failover(主备切换)而发生改变时,这个脚本将会被调用,通知相关的客户端关于主节
# 点地址已经发生改变的信息
# 以下参数将会在调用脚本时传给脚本:
# <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
# 目前<state>总是“failover”
# <role>是“leader”或者“observer”中的一个
# 参数<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