Redis哨兵面试攻略,你准备好应对挑战了吗,掌握Sentinel核心要点

文章导读
Redis Sentinel 是 Redis 的高可用性解决方案,用于监控主从复制,并在主节点故障时自动进行故障转移,确保服务的连续性。核心要点包括:Sentinel 节点监控主从节点的心跳,如果主节点不可达超过 down-after-milliseconds 配置的时间,则发起主观下线(SDOWN),多个 Sentinel 通过 quorum 机制确认客观下线(ODOWN),选举 leader
📋 目录
  1. Sentinel 架构与工作流程
  2. 配置关键参数
  3. 面试常见问题
  4. Sentinel vs. Redis Cluster
  5. 实践部署注意事项
  6. 故障排除技巧
A A

Redis Sentinel 是 Redis 的高可用性解决方案,用于监控主从复制,并在主节点故障时自动进行故障转移,确保服务的连续性。核心要点包括:Sentinel 节点监控主从节点的心跳,如果主节点不可达超过 down-after-milliseconds 配置的时间,则发起主观下线(SDOWN),多个 Sentinel 通过 quorum 机制确认客观下线(ODOWN),选举 leader Sentinel 执行故障转移,选择从节点提升为主节点,并通知客户端更新配置。

Sentinel 架构与工作流程

Sentinel 是独立的进程,可以部署多个,形成分布式系统。每个 Sentinel 定期发送 PING 命令检查节点状态,发送 INFO 命令获取拓扑信息,通过 +sentinel 事件通知其他 Sentinel。故障发现后,Leader Sentinel 执行 failover:slaveof no-one 提升从节点,重写主节点配置,通过 pub/sub 通知客户端切换。

配置关键参数

sentinel monitor mymaster 127.0.0.1 6379 2 # 定义监控主节点,quorum=2 表示至少2个Sentinel确认下线 sentinel down-after-milliseconds mymaster 5000 # 5秒无响应主观下线 sentinel failover-timeout mymaster 180000 # 故障转移超时180秒 sentinel parallel-syncs mymaster 1 # 转移后1个从节点同步。

面试常见问题

1. Sentinel 如何避免脑裂?通过 quorum 机制,只有多数 Sentinel 同意才客观下线。2. 主观下线和客观下线区别?SDOWN 是单个 Sentinel 判断,ODOWN 是多数确认,用于触发转移。3. 故障转移过程?Leader 选举,选择优先级最高、复制偏移最大、runid 最小的从节点提升为主。

Sentinel vs. Redis Cluster

Sentinel 专注高可用,主从+哨兵模式;Cluster 提供自动分片和高可用,内置故障转移。Sentinel 支持配置提供者模式,客户端订阅 +switch-master 事件自动切换。

Redis哨兵面试攻略,你准备好应对挑战了吗,掌握Sentinel核心要点

实践部署注意事项

部署奇数个 Sentinel,如3、5个,避免选举平票;Sentinel 端口默认26379;使用密码保护 sentinel auth-pass mymaster password;容器化部署需注意网络配置,确保 Sentinel 能互相发现。

故障排除技巧

SENTINEL masters 查看主节点,SENTINEL sentinels mymaster 查看哨兵列表;日志中常见 +sdown、+odown、+try-failover 等事件;如果转移失败,检查 quorum、从节点优先级 salve-priority,默认100,越小优先级越高。

FAQ
Q: Sentinel quorum 设置多少合适?
A: 一般设置为 Sentinel 总数 / 2 + 1,如3个设2。
Q: 如何让客户端自动感知主节点切换?
A: 使用支持 Sentinel 的客户端库,订阅 +switch-master 频道。
Q: Sentinel 能监控 Redis Cluster 吗?
A: 不能,Cluster 自带高可用机制。
Q: 故障转移会不会丢失数据?
A: 可能丢失异步复制未同步的数据,建议开启 AOF 或强同步。