MST

星途 面试题库

面试题:Redis Sentinel 如何获取从服务器基本信息,以及常规保障实时性的机制有哪些

在 Redis Sentinel 架构中,说明 Sentinel 获取从服务器信息的主要命令或方法,并阐述 Sentinel 为保障获取从服务器信息实时性所采用的常规机制。
49.7万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

获取从服务器信息的主要命令或方法

  1. SENTINEL GET-master-addr-by-name 命令:Sentinel 之间可以通过该命令获取主服务器的地址信息。例如,当一个 Sentinel 启动时,它可以向其他已知的 Sentinel 发送这个命令来获取主服务器的地址。一旦获取到主服务器地址,就可以进一步获取其关联的从服务器信息。因为 Redis 主服务器会维护从服务器的连接列表,Sentinel 可以通过与主服务器交互间接获取从服务器信息。
  2. INFO replication 命令:Sentinel 会定期向主服务器和从服务器发送 INFO replication 命令。主服务器在响应这个命令时,会返回关于自身以及其所有从服务器的详细信息,包括从服务器的 IP 地址、端口号、复制偏移量等。从服务器在响应此命令时,会提供自身关于复制状态的信息,如正在复制的主服务器地址、自身复制偏移量等。

保障获取从服务器信息实时性的常规机制

  1. 定期心跳检测
    • Sentinel 会以一定的时间间隔(默认每 10 秒)向主服务器和从服务器发送 PING 命令。这个心跳检测不仅用于判断服务器是否存活,还能间接保障信息的实时性。如果某个从服务器在一段时间内没有响应心跳,Sentinel 会标记其为下线状态,并开始尝试获取最新的状态信息。
    • 同时,Sentinel 之间也会互相发送 PING 命令来维持连接并同步状态信息,当某个 Sentinel 发现主服务器或从服务器状态变化时,能快速将这个信息传播给其他 Sentinel。
  2. 配置更新
    • 当 Sentinel 检测到主从服务器的拓扑结构发生变化(如新增从服务器、从服务器下线等)时,会更新其本地配置,并将这个变化传播给其他 Sentinel。这种配置更新机制确保了所有 Sentinel 对主从服务器信息的一致性和实时性。
    • 例如,当一个新的从服务器加入集群时,主服务器会将这个信息包含在 INFO replication 的响应中返回给 Sentinel,Sentinel 会根据这个信息更新自己的配置,并告知其他 Sentinel。
  3. 事件通知
    • Sentinel 采用事件驱动模型,当主从服务器发生重要事件(如从服务器连接、断开连接等)时,会触发相应的事件。Sentinel 会监听这些事件,并根据事件类型及时更新从服务器信息。这种机制使得 Sentinel 能快速响应服务器状态变化,保障获取信息的实时性。