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

发布时间:2021-10-11 09:55:02 作者:柒染
来源:亿速云 阅读:161
# 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 关键参数说明

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 监控指标

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地址、密码等参数。建议在测试环境验证后再部署到生产环境。

推荐阅读:
  1. redis学习9---一主二从三哨兵环境配置
  2. Redis之-哨兵模式原理

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

redis

上一篇:如何解决php读取csv文件后uft8 bom导致在页面上显示出现问题

下一篇:如何配置go根据端口号启动程序,并守护该进程

相关阅读

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

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