MST

星途 面试题库

面试题:Redis Sentinel中如何判断主观下线状态

请详细描述Redis Sentinel检测主观下线状态的基本流程,以及涉及到的关键配置参数和数据结构。
35.0万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

主观下线状态检测基本流程

  1. 定期PING操作:Sentinel会以一定的时间间隔(可通过配置参数 down-after-milliseconds 设定)向主服务器和从服务器发送PING命令。
  2. 响应判断:如果在 down-after-milliseconds 时间内没有收到被监控服务器的有效回复(包括回复 PONG 或其他错误),Sentinel就会将该服务器标记为主观下线(Subjectively Down,简称SDOWN)。

关键配置参数

  1. down-after-milliseconds:这个参数用于设定在认定服务器主观下线之前,Sentinel等待服务器回复的最大时间(单位为毫秒)。例如,若设置为 5000,表示如果5秒内没有收到服务器对PING命令的回复,就标记为SDOWN。

涉及的数据结构

  1. sentinelRedisInstance结构:在Sentinel的代码实现中,sentinelRedisInstance 结构用于表示一个被监控的Redis实例(主服务器或从服务器)。这个结构中包含了与实例状态相关的字段,例如 flags 字段会标记该实例是否处于主观下线状态等信息。当一个实例被标记为主观下线时,该结构中的相关状态字段会被更新以反映这一状态变化。