MST

星途 面试题库

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

在 Redis Sentinel 架构中,简要描述 Sentinel 获取从服务器信息的机制和相关命令。
40.4万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

Sentinel 获取从服务器信息的机制

  1. 自动发现
    • Sentinel 通过发布订阅机制与主服务器进行交互。当 Sentinel 启动并连接到主服务器时,主服务器会向 Sentinel 发送关于其从服务器的信息。主服务器会在__sentinel__:hello频道上发布自身以及从服务器的相关信息,Sentinel 订阅这个频道,从而获取到从服务器的初始信息,包括从服务器的地址等。
  2. 定期检查
    • Sentinel 会定期对主服务器和从服务器进行健康检查。它会向从服务器发送PING命令来检测其是否存活。如果从服务器在规定时间内没有响应PING命令,Sentinel 会标记该从服务器为“主观下线”(Subjectively Down,简称 SDOWN)。多个 Sentinel 之间会互相交流,如果多数 Sentinel 都认为某个从服务器主观下线,那么该从服务器会被标记为“客观下线”(Objectively Down,简称 ODOWN)。
    • Sentinel 还会定期获取从服务器的复制状态信息,例如通过INFO replication命令获取从服务器与主服务器的同步状态,包括复制偏移量等,以此来监控从服务器的复制健康状况。

相关命令

  1. INFO replication
    • 用途:这个命令用于获取从服务器的复制相关信息。从服务器会返回诸如role:slave表明自身角色是从服务器,master_hostmaster_port表示主服务器的地址和端口,master_link_status:up显示与主服务器连接状态,slave_repl_offset表示从服务器的复制偏移量等详细信息。Sentinel 通过获取这些信息来监控从服务器与主服务器的同步情况。
  2. PING
    • 用途:Sentinel 使用PING命令检测从服务器是否存活。如果从服务器能够在规定时间内回复PONG,则表明其处于活动状态。若在规定时间内未收到PONG,Sentinel 会按照规则将其标记为“主观下线”。