面试题答案
一键面试Redis Sentinel检测主观下线状态基本原理
- 心跳检测机制:Sentinel会定期向所有被监控的Redis实例发送PING命令。
- 主观判定逻辑:如果在一定时间内(由
down-after-milliseconds
参数控制),被监控的Redis实例没有回复PING命令的PONG响应,Sentinel就会主观地认为该Redis实例处于下线状态,即主观下线(Subjectively Down,简称SDOWN)。
影响检测频率和判定条件的关键参数
- down-after-milliseconds
- 作用:该参数定义了Sentinel判定Redis实例主观下线的时间阈值。当Redis实例在
down-after-milliseconds
毫秒内,没有回复Sentinel发送的PING命令的PONG响应时,Sentinel就会将其标记为主观下线。 - 示例:例如设置
down-after-milliseconds 30000
,表示30秒内没有收到PONG响应,就判定为主观下线。
- 作用:该参数定义了Sentinel判定Redis实例主观下线的时间阈值。当Redis实例在
- ping-interval
- 作用:此参数控制Sentinel向被监控的Redis实例发送PING命令的频率。较小的
ping - interval
值可以使Sentinel更频繁地检测Redis实例的状态,从而更快地发现可能出现的问题,但同时也会增加网络开销。 - 示例:默认值为10000毫秒(10秒),即每10秒向Redis实例发送一次PING命令。
- 作用:此参数控制Sentinel向被监控的Redis实例发送PING命令的频率。较小的