admin 发表于 2026-8-11 17:10:51

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

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

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

一、哨兵模式核心组件

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


二、搭建步骤

1. 准备Redis主从架构

# 主节点配置 (redis-master.conf)
port 6379
bind 0.0.0.0
requirepass yourpassword

# 从节点1配置 (redis-slave1.conf)
port 6380
bind 0.0.0.0
replicaof 127.0.0.1 6379# 或 slaveof
masterauth yourpassword
requirepass yourpassword

# 从节点2配置类似...

2. 配置Sentinel节点

创建sentinel配置文件(sentinel.conf):

# 监控主节点
# sentinel monitor <master-name> <ip> <port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2

# 认证配置
sentinel auth-pass mymaster yourpassword

# 其他配置
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

3. 启动Redis节点和Sentinel

# 启动主节点
redis-server /path/to/redis-master.conf

# 启动从节点
redis-server /path/to/redis-slave1.conf

# 启动Sentinel节点(建议至少3个Sentinel节点)
redis-sentinel /path/to/sentinel.conf
# 或
redis-server /path/to/sentinel.conf --sentinel

三、关键配置说明

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


四、验证配置

[*]查看Sentinel监控状态

   redis-cli -p 26379(sentinel端口) info sentinel

[*]查看主从状态

   redis-cli -h 主节点IP -p 6379 info replication

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


五、客户端配置

客户端需要配置Sentinel地址而不是直接连接Redis主节点:

// Java示例(Jedis)
Set<String> sentinels = new HashSet<>();
sentinels.add("sentinel1:26379");
sentinels.add("sentinel2:26379");
sentinels.add("sentinel3:26379");

JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels,
    new JedisPoolConfig(), "yourpassword");

六、最佳实践

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


七、常见问题排查

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


通过合理配置Redis哨兵模式,可以实现Redis集群的高可用性,确保在主节点故障时能够快速自动切换,保障服务的连续性。
页: [1]
查看完整版本: Redis哨兵模式搭建与高可用配置