目录
- 前言
- 一、Redis 哨兵核心概念:角色、功能与架构
- 1.1 核心角色与功能
- 1.2 典型架构
- 二、Redis 哨兵部署实操:从基础搭建到故障验证
- 2.1 前置准备:搭建主从集群
- 前置准备
- 步骤 1:启动主库(端口 6379)
- 步骤 2:启动两个从库(端口 6380、6381),关联主库
- 步骤 3:验证主从状态
- 2.2 哨兵配置与启动(3 个哨兵节点)
- 步骤 1:创建哨兵配置文件
- 步骤 2:启动 3 个哨兵节点
- 步骤 3:验证哨兵状态
- 2.3 故障转移验证(模拟主库宕机)
- 步骤 1:停止主库(6379 端口)
- 步骤 2:观察哨兵日志(核心流程)
- 步骤 3:验证集群状态
- 三、Redis 哨兵工作原理:故障转移全流程解析
- 3.1 节点监控机制(哨兵核心循环)
- 3.2 下线判定:主观下线(SDOWN)与客观下线(ODOWN)
- 3.3 领头哨兵选举(Raft 算法)
- 3.4 故障恢复流程(领头哨兵执行)
- 四、Redis 哨兵核心配置优化(生产环境必调)
- 4.1 故障判定与超时配置
- 4.2 哨兵集群高可用配置
- 4.3 从库选举优化
- 4.4 日志与告警配置
- 五、Redis 哨兵典型应用场景
- 5.1 主从架构高可用保障(核心场景)
- 5.2 分布式缓存高可用(Web 应用场景)
- 5.3 数据备份与灾备(核心数据场景)
- 六、Redis 哨兵避坑指南:生产环境常见问题
- 6.1 坑 1:哨兵单点故障,导致无法触发故障转移
- 6.2 坑 2:网络分区导致哨兵误判,引发不必要的故障转移
- 6.3 坑 3:从库数据不一致,晋升后业务异常
- 6.4 坑 4:故障转移后,客户端未更新主库地址
- 七、总结:Redis 哨兵的学习与进阶建议
前言
在 Redis 主从架构中,主库故障会导致整个集群写服务中断,传统手动切换主从的方式不仅耗时,还易引发人为错误。而 Redis 哨兵(Sentinel)作为自动化高可用解决方案,以独立进程形式运行,能实时监控集群状态、自动完成故障转移,成为中小型 Redis 集群保障服务连续性的核心组件。本文从部署实操、工作原理、配置优化到避坑指南,全方位拆解 Redis 哨兵,帮助你快速搭建高可用架构,从容应对节点故障。
一、Redis 哨兵核心概念:角色、功能与架构
1.1 核心角色与功能
哨兵节点(Sentinel):独立运行的进程,核心职责包括三点:
监控:实时检测主库、从库及其他哨兵节点的存活状态;
故障转移:主库故障时,自动选举新主库、重配置从库,无需人工干预;
通知:通过日志或 API 反馈集群状态,支持故障告警。
主从节点:延续主从复制的角色分工,主库负责写操作,从库负责读操作;主库故障后,由哨兵从从库中选举最优节点晋升为新主库。
1.2 典型架构
哨兵的经典部署架构为 “1 主 N 从 + 多哨兵”,核心特性如下:
哨兵集群互监控:多个哨兵之间