Redis 哨兵模式与 Cluster 模式的核心配置区别在于架构目标不同:哨兵模式通过独立进程监控主从节点实现故障转移,配置重点在 sentinel.conf;Cluster 模式通过数据分片实现分布式存储,配置重点在开启 cluster-enabled yes 并分配哈希槽。
先说结论:哨兵模式适合数据量较小且需兼容旧客户端的场景,Cluster 模式适合海量数据且需水平扩展的场景。
- 适合:哨兵用于主从高可用,Cluster 用于分片存储
- 重点看:哨兵配置 quorum 票数,Cluster 配置哈希槽分布
- 别忽略:哨兵需独立进程,Cluster 需节点间 Gossip 通信
命令速用版
# 哨兵模式配置示例 (sentinel.conf)
sentinel monitor mymaster 192.168.1.10 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
# Cluster 模式配置示例 (redis.conf)
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
# 创建集群命令
redis-cli `--cluster` create 192.168.1.10:7000 192.168.1.11:7000 `--cluster-replicas` 1为什么会这样
配置差异源于两者解决的核心问题不同。哨兵模式定位为高可用守护者,不负责数据分片,因此配置集中在监控规则和故障转移阈值;Cluster 模式定位为大规模存储解决方案,内置数据分片机制,因此配置必须包含槽位分配和节点间通信协议。
分步处理
1. 哨兵模式配置步骤
第一步,修改 redis.conf 开启主从复制,确保主节点可写,从节点配置 slaveof。
第二步,编写 sentinel.conf,设置 monitor 参数指定主节点 IP 和端口,配置 quorum 值(如 2)表示多数哨兵同意才切换。
第三步,启动哨兵进程,命令为 redis-sentinel sentinel.conf,至少部署 3 个哨兵节点以避免脑裂。
2. Cluster 模式配置步骤
第一步,修改所有节点的 redis.conf,设置 cluster-enabled yes 和 cluster-config-file 路径。
第二步,启动所有 Redis 节点,确保端口互通。
第三步,使用 redis-cli `--cluster` create 命令初始化集群,指定主从比例,系统会自动分配 16384 个哈希槽。
怎么验证是否生效
哨兵模式验证:使用 redis-cli -p 哨兵端口 连接,执行 info sentinel 命令,查看 master 状态是否为 ok,确认哨兵数量符合预期。
Cluster 模式验证:使用 redis-cli -c -p 节点端口 连接,执行 cluster info 命令,检查 cluster_state 是否为 ok,使用 cluster slots 查看槽位分配是否完整。
常见坑
1. 哨兵脑裂风险:如果哨兵数量不足或网络分区,可能导致多个主节点同时存在。建议部署奇数个哨兵(至少 3 个),并配置 min-slaves-to-write 确保数据安全。
2. 集群槽位缺失:Cluster 模式下若部分槽位未分配,集群将不可用。需确保 cluster-require-full-coverage 配置合理,生产环境通常建议设为 no 以允许部分服务。
3. 客户端兼容性:旧版客户端可能不支持 Cluster 重定向协议。选型前需确认驱动库是否支持 Redis Cluster 模式,否则需使用代理层。
常见问题
哨兵模式能水平扩展写性能吗?
不能。哨兵模式写操作仍集中在单个主节点,仅能通过增加从节点扩展读性能。
Cluster 模式故障恢复需要多久?
公开资料中没有看到可靠的量化数据,通常取决于节点超时配置和网络状况,一般在秒级完成从节点晋升。
可以在 Cluster 模式上再部署哨兵吗?
不需要。Cluster 模式内置了故障检测和转移机制,节点自身具备高可用能力,无需额外哨兵进程。
参考来源
- Redis 集群:哨兵模式与 Cluster 模式的对比与高可用配置
- Redis 哨兵与集群模式
- Redis 高可用架构设计:哨兵与集群模式对比分析
- Redis 哨兵集群 (Sentinel) 与 Cluster 集群对比_redis cluster 和哨兵区别-CSDN 博客
- Redis 集群部署方案对比:主从哨兵 vs Cluster,各自的适用场景和配置要点