#昊鼎王五:redis集群之sentinel哨兵配置文件详解

在上一篇《昊鼎王五:linux如何快速搭建基于哨兵模式的redis集群?》

本篇,我们讲讲哨兵配置文件的参数的详细解释。

3哨兵 redis redis哨兵配置文件详解_3哨兵 redis

Redis 哨兵

#机制及原理
Redis提供了sentinel(哨兵)机制,通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决

每个sentinel会向其它sentinal、master、slave定时发送消息,以确认对方是否“活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的“主观认为宕机” Subjective Down,简称SDOWN)。

若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称ODOWN),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。

#Sentinel 配置文件与解说
以《昊鼎王五:linux如何快速搭建基于哨兵模式的redis集群?》中的sentinel_25201.config为例:

port 25201
dir "/hd205/service/redis/redis-3.0.5/25201/run/tmp"
sentinel monitor mymaster 192.168.1.101 2501 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 15000
logfile "/hd205/service/redis/redis-3.0.5/25201/run/tmp/sentinellog_m1_25201.log"

第1行,指定sentinel使用的端口,不能与redis-server运行实例的端口冲突
第2行,指定工作目录
第3行,显示监控master节点192.168.1.101,master节点使用端口2501,最后一个数字表示投票需要的"最少法定人数",比如有10个sentinal哨兵都在监控某一个master节点,如果需要至少6个哨兵发现master挂掉后,才认为master真正down掉,那么这里就配置为6,至于mymaster只是一个名字,可以随便起,但要保证其他行都使用同一个名字
第4行,表示如果5s内mymaster没响应,就认为SDOWN
第5行,表示如果master重新选出来后,其它slave节点能同时并行从新master同步缓存的台数有多少个,显然该值越大,所有slave节点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保定的设置为1,只同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
第6行,表示如果15秒后,mysater仍没活过来,则启动failover,从剩下的slave中选一个升级为master
第7行,表示哨兵日志的目录及名字。