找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 25166|回复: 0

Redis哨兵模式搭建与高可用配置

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 17:10:51 | 显示全部楼层 |阅读模式
Redis哨兵模式搭建与高可用配置

Redis哨兵(Sentinel)模式是Redis官方提供的高可用解决方案,通过监控主节点和自动故障转移实现高可用性。

一、哨兵模式核心组件

  • Redis主从节点:提供数据存储和复制
  • Sentinel节点:监控Redis节点,执行故障检测和自动故障转移


二、搭建步骤

1. 准备Redis主从架构
  1. # 主节点配置 (redis-master.conf)
  2. port 6379
  3. bind 0.0.0.0
  4. requirepass yourpassword
  5. # 从节点1配置 (redis-slave1.conf)
  6. port 6380
  7. bind 0.0.0.0
  8. replicaof 127.0.0.1 6379  # 或 slaveof
  9. masterauth yourpassword
  10. requirepass yourpassword
  11. # 从节点2配置类似...
复制代码

2. 配置Sentinel节点

创建sentinel配置文件(sentinel.conf):
  1. # 监控主节点
  2. # sentinel monitor <master-name> <ip> <port> <quorum>
  3. sentinel monitor mymaster 127.0.0.1 6379 2
  4. # 认证配置
  5. sentinel auth-pass mymaster yourpassword
  6. # 其他配置
  7. sentinel down-after-milliseconds mymaster 5000
  8. sentinel parallel-syncs mymaster 1
  9. sentinel failover-timeout mymaster 180000
复制代码

3. 启动Redis节点和Sentinel
  1. # 启动主节点
  2. redis-server /path/to/redis-master.conf
  3. # 启动从节点
  4. redis-server /path/to/redis-slave1.conf
  5. # 启动Sentinel节点(建议至少3个Sentinel节点)
  6. redis-sentinel /path/to/sentinel.conf
  7. # 或
  8. redis-server /path/to/sentinel.conf --sentinel
复制代码

三、关键配置说明

  • sentinel monitor
  • 定义要监控的主节点
    1. quorum
    复制代码
    参数表示需要多少个Sentinel同意才能判定主节点下线
  • sentinel down-after-milliseconds
  • 指定Sentinel认为节点不可达的毫秒数
  • sentinel parallel-syncs
  • 故障转移时,新主节点能同时接收多少个从节点的同步请求
  • sentinel failover-timeout
  • 故障转移超时时间


四、验证配置

  • 查看Sentinel监控状态

  
  1. redis-cli -p 26379(sentinel端口) info sentinel
复制代码

  • 查看主从状态

  
  1. redis-cli -h 主节点IP -p 6379 info replication
复制代码

  • 模拟故障转移测试
  • 停止主节点服务
  • 观察Sentinel是否自动选举新的主节点
  • 检查应用是否自动切换到新主节点


五、客户端配置

客户端需要配置Sentinel地址而不是直接连接Redis主节点:
  1. // Java示例(Jedis)
  2. Set<String> sentinels = new HashSet<>();
  3. sentinels.add("sentinel1:26379");
  4. sentinels.add("sentinel2:26379");
  5. sentinels.add("sentinel3:26379");
  6. JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels,
  7.     new JedisPoolConfig(), "yourpassword");
复制代码

六、最佳实践

  • 部署建议
  • 至少3个Sentinel节点,分布在不同物理机/虚拟机上
  • Sentinel节点应与Redis数据节点分开部署
  • 监控
  • 监控Sentinel节点状态
  • 监控故障转移事件
  • 安全
  • 使用密码认证
  • 限制访问IP
  • 考虑使用SSL/TLS加密通信
  • 维护
  • 定期检查Sentinel日志
  • 测试故障转移流程
  • 文档记录所有Sentinel节点信息


七、常见问题排查

  • Sentinel无法发现主节点
  • 检查网络连通性
  • 验证认证配置
  • 检查防火墙设置
  • 故障转移未触发
  • 检查quorum值是否合理
  • 验证down-after-milliseconds设置
  • 检查Sentinel节点间通信


通过合理配置Redis哨兵模式,可以实现Redis集群的高可用性,确保在主节点故障时能够快速自动切换,保障服务的连续性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 18:13 , Processed in 0.078832 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表