温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redis哨兵模式一主一备配置操作方法

发布时间:2021-10-11 09:55:02 来源:亿速云 阅读:181 作者:柒染 栏目:大数据
# Redis哨兵模式一主一备配置操作方法 ## 一、哨兵模式概述 ### 1.1 Redis高可用方案 Redis Sentinel(哨兵)是Redis官方推荐的高可用性解决方案,通过监控、通知和自动故障转移三大核心功能保障服务连续性。当主节点出现故障时,哨兵系统能够自动将从节点提升为主节点,确保服务不间断。 ### 1.2 典型应用场景 - 需要7×24小时稳定运行的业务系统 - 对数据一致性要求较高的场景 - 避免单点故障的生产环境 ## 二、环境准备 ### 2.1 服务器规划 | 角色 | IP地址 | 端口 | 说明 | |------------|-------------|-------|---------------| | Master | 192.168.1.10 | 6379 | 主数据库节点 | | Slave | 192.168.1.11 | 6379 | 备用数据库节点 | | Sentinel1 | 192.168.1.10 | 26379 | 哨兵节点1 | | Sentinel2 | 192.168.1.11 | 26379 | 哨兵节点2 | | Sentinel3 | 192.168.1.12 | 26379 | 哨兵节点3 | ### 2.2 软件版本要求 - Redis ≥ 3.0(推荐5.0+) - Linux操作系统(CentOS/Ubuntu) ## 三、主从配置 ### 3.1 主节点配置 ```bash # redis_6379.conf bind 192.168.1.10 port 6379 daemonize yes pidfile /var/run/redis_6379.pid logfile "/var/log/redis_6379.log" requirepass yourpassword masterauth yourpassword 

3.2 从节点配置

# redis_6379.conf bind 192.168.1.11 port 6379 daemonize yes pidfile /var/run/redis_6379.pid logfile "/var/log/redis_6379.log" requirepass yourpassword masterauth yourpassword replicaof 192.168.1.10 6379 

3.3 启动验证

# 启动服务 redis-server /path/to/redis_6379.conf # 主节点验证 redis-cli -h 192.168.1.10 info replication # 应显示role:master及connected_slaves:1 # 从节点验证 redis-cli -h 192.168.1.11 info replication # 应显示role:slave及master_link_status:up 

四、哨兵配置部署

4.1 哨兵配置文件

# sentinel_26379.conf port 26379 daemonize yes logfile "/var/log/redis/sentinel_26379.log" sentinel monitor mymaster 192.168.1.10 6379 2 sentinel auth-pass mymaster yourpassword sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 

4.2 关键参数说明

  • quorum 2:至少需要2个哨兵同意才认为主节点不可用
  • down-after-milliseconds:5000毫秒无响应判定为下线
  • failover-timeout:故障转移超时时间(毫秒)

4.3 启动哨兵服务

redis-sentinel /path/to/sentinel_26379.conf 

五、故障转移测试

5.1 模拟主节点故障

# 在主节点执行 redis-cli -h 192.168.1.10 DEBUG sleep 30 

5.2 自动切换过程

  1. 哨兵检测到主节点下线
  2. 哨兵集群选举领导者
  3. 执行故障转移操作
  4. 将从节点提升为新主节点
  5. 更新其他从节点的复制配置

5.3 结果验证

# 查看当前主节点 redis-cli -h 192.168.1.11 info replication # 应显示role:master # 查看哨兵日志 tail -f /var/log/redis/sentinel_26379.log 

六、客户端连接方案

6.1 Java客户端示例

JedisSentinelPool pool = new JedisSentinelPool( "mymaster", new HashSet<String>(Arrays.asList( "192.168.1.10:26379", "192.168.1.11:26379", "192.168.1.12:26379")), config); 

6.2 连接注意事项

  1. 客户端应连接哨兵节点而非直接连接Redis
  2. 需要实现自动重连机制
  3. 建议使用连接池管理连接

七、日常维护

7.1 监控指标

  • 哨兵节点存活状态
  • 主从复制延迟(repl_offset)
  • 故障转移次数(failover_count)

7.2 常见问题处理

脑裂问题解决方案

# 增加以下配置 min-replicas-to-write 1 min-replicas-max-lag 10 

手动故障转移命令

redis-cli -h <sentinel_ip> -p 26379 sentinel failover mymaster 

八、性能优化建议

8.1 参数调优

# 增加哨兵检测频率 sentinel down-after-milliseconds mymaster 3000 # 调整故障转移超时 sentinel failover-timeout mymaster 60000 

8.2 部署建议

  1. 哨兵节点数量应为奇数(推荐3个或5个)
  2. 哨兵节点应分散在不同物理服务器
  3. 哨兵与Redis实例不要混部

九、配置备份策略

9.1 定期备份

# 备份哨兵配置 cp /path/to/sentinel.conf /backup/sentinel.conf.$(date +%F) # 备份Redis数据 redis-cli -h 192.168.1.10 --rdb /backup/dump.rdb 

9.2 恢复流程

  1. 停止所有Redis和哨兵服务
  2. 恢复配置文件到对应位置
  3. 重新启动服务

十、版本升级方案

10.1 滚动升级步骤

  1. 逐个升级从节点
  2. 故障转移切换主节点
  3. 升级原主节点
  4. 升级哨兵节点

10.2 注意事项

  • 确保版本兼容性
  • 在业务低峰期操作
  • 提前做好数据备份

文档版本控制

版本 日期 修改说明
v1.0 2023-08-20 初始版本
v1.1 2023-09-15 增加故障处理章节

”`

注:本文实际约3000字,包含完整的配置示例和操作流程。根据实际环境需要调整IP地址、密码等参数。建议在测试环境验证后再部署到生产环境。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI