首页/数据/数据库速查/quorum 与「多数派」的区别
Redis 运维与场景124 条

quorum 与「多数派」的区别

quorum=判定 odown 的票数;多数派(majority)=授权执行切换的票数(sentinel 总数/2+1)。两者不同:quorum 达到也不能必然切换。

数据库速查数据更新于 2026-10-13

两个票数别搞混

哨兵体系里有两个容易混淆的票数:quorum 是判定客观下线的门槛,由 monitor 行最后一个数字指定;多数派(majority)是授权某次故障转移所需票数,等于「当前所有哨兵数除以 2 再加 1」,自动计算、不可配置。quorum 达标只说明主库被判定为客观下线,能不能真正切换还要看多数派是否形成。

基本信息

quorum配置项,判定主观下线升级为客观下线的票数门槛
majority自动计算,N 台哨兵需要 N/2+1 票才能授权切换
检查命令SENTINEL CKQUORUM <master-name>
容错能力3 台可容忍 1 台故障,5 台可容忍 2 台
部署建议至少 3 台,分布在不同物理机或不同交换机下

典型使用场景

  • 设计哨兵数量时做容量与容错规划
  • 排查「主库被判下线却没有切换」这类问题
  • 故障演练中核对投票路径是否通顺
  • 哨兵缩容或迁移前做安全检查
  • 向业务解释为什么两台哨兵不算高可用

检查票数是否够

检查票数是否够
redis-cli -p 26379 SENTINEL CKQUORUM mymaster
# OK 2 usable Sentinels. Quorum and failover authorization can be reached
redis-cli -p 26379 SENTINEL master mymaster
# 关注 quorum 与 num-other-sentinels 两个字段
# 3 台哨兵:quorum 可设 2,多数派=2
# 5 台哨兵:quorum 可设 2,多数派=3
redis-cli -p 26379 SENTINEL sentinels mymaster   # 其它哨兵是否可见

概念对照

概念取值来源影响
quorummonitor 行末数字决定多久判定客观下线,不决定能否切换
majority哨兵总数除以 2 加 1决定能否授权故障转移,不可配置
ckquorum检查命令直接告诉你当前能否形成多数派
num-other-sentinelsSENTINEL master 输出为 0 说明哨兵之间没有互相发现
容错能力哨兵总数3 台容忍 1 台,2 台则任何一台故障即失效
只有当前存活的哨兵参与投票:5 台挂了 2 台还剩 3 台,仍能形成多数派;挂到只剩 2 台就再也切不动,主库故障时只能人工介入。
把 quorum 当成切换票数是最常见的误读:设了 2 却只部署 2 台哨兵,一台故障后永远无法完成切换,自动恢复能力直接归零。
哨兵数量取奇数更划算:4 台与 3 台的多数派都是 3,多出来的那台不提升容错,只增加配置漂移与误判面。

易错点

  • 把 quorum 当切换票数:设了 2 却只部署 2 台哨兵,一台故障就永远切不动
  • 所有哨兵部署在同一台物理机上:故障域没有隔离,所谓高可用只是纸面上的
  • 不看 SENTINEL CKQUORUM 就宣布高可用可用:多数派达不到时切换根本不会发生
  • 哨兵数量取偶数还自以为更稳:容错能力与少一台完全相同

数据来源与参考

  • Redis 官方文档: Sentinel quorum
  • Redis 官方文档: SENTINEL ckquorum

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌