MST
星途 面试题库

面试题:Redis Sentinel如何动态获取从服务器信息

在Redis Sentinel架构中,简述Sentinel是通过哪些机制和步骤来动态获取从服务器信息并进行更新的。
22.4万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 自动发现机制
    • Sentinel通过与主服务器建立连接,发送INFO命令。主服务器在INFO命令的回复中会包含从服务器的信息,如从服务器的IP、端口等。例如,主服务器的INFO回复中会有类似slave0:ip=192.168.1.10,port=6380,state=online,offset=1000,lag=0这样的字段,Sentinel可以从中解析出从服务器的详细信息。
  2. 定期心跳检测
    • Sentinel会定期向主服务器和已知的从服务器发送PING命令,进行心跳检测。
    • 如果某个从服务器在一定时间内没有响应PING命令,Sentinel会将其标记为主观下线(SDOWN)。这有助于Sentinel及时发现从服务器可能出现的故障,从而为后续重新获取从服务器信息做准备。
  3. 故障检测与信息更新
    • 当Sentinel判断某个从服务器主观下线后,会与其他Sentinel节点进行通信,交换对该从服务器的状态判断。如果达到一定数量(quorum)的Sentinel都认为该从服务器下线,那么会将其标记为客观下线(ODOWN)。
    • 在从服务器发生故障(如重启、网络问题恢复等)后重新上线时,Sentinel会重新通过与主服务器交互(发送INFO命令)来获取最新的从服务器列表,更新从服务器信息,确保对整个Redis集群状态的准确掌握。