编辑
2026-05-02
redis
00

目录

一、最新环境规划(3 节点标准高可用架构)
二、创建配置目录
三、配置 Redis 主从复制
1.配置主节点(192.168.201.133)
2.配置从节点 (192.168.201.137、192.168.201.138)
三、验证主从复制状态
四、配置哨兵
1.配置三台哨兵(133/137/138 都要执行)
2.粘贴以下配置(三台完全相同):
3.三台服务器都启动哨兵
4.验证哨兵状态(任意一台执行)

一、最新环境规划(3 节点标准高可用架构)

3 个哨兵节点(奇数),满足 Raft 多数派投票要求(多数派 = 2 票),任意 1 台服务器宕机都能正常完成故障转移,无高可用风险。

开放防火墙端口:

js
测试环境可临时关闭防火墙:systemctl stop firewalld

二、创建配置目录

js
mkdir -p /etc/redis # 从源码目录复制默认配置模板(如果还没复制过) cp /redis/redis-8.4.0/redis.conf /etc/redis/ cp /redis/redis-8.4.0/sentinel.conf /etc/redis/

三、配置 Redis 主从复制

1.配置主节点(192.168.201.133)

清空并创建新的redis.conf

js
> /etc/redis/redis.conf vi /etc/redis/redis.conf
js
# 允许所有IP访问(生产环境建议绑定内网IP段,如192.168.201.0/24) bind 0.0.0.0 # 关闭保护模式(或设置密码后保持yes) protected-mode no # 后台运行 daemonize yes # 日志文件(便于排查) logfile "/var/log/redis.log" # 数据持久化目录 dir "/var/lib/redis" # 设置强密码(请替换为实际密码,主从节点必须一致) requirepass 123456 # 从节点同步时的认证密码(与上面一致) masterauth 123456 # RDB持久化配置(默认即可,按需调整) save 900 1 save 300 10 save 60 10000

创建数据目录并启动主节点:

js
mkdir -p /var/lib/redis redis-server /etc/redis/redis.conf

2.配置从节点 (192.168.201.137、192.168.201.138)

清空并创建新的redis.conf

js
> /etc/redis/redis.conf vi /etc/redis/redis.conf

从节点配置

js
bind 0.0.0.0 protected-mode no daemonize yes logfile "/var/log/redis.log" dir "/var/lib/redis" requirepass 123456 masterauth 123456 save 900 1 save 300 10 save 60 10000 # 关键:指定主节点IP和端口 replicaof 192.168.201.133 6379

创建数据目录并启动从节点 1:

js
mkdir -p /var/lib/redis redis-server /etc/redis/redis.conf

三、验证主从复制状态

在主节点(133)验证:

js
redis-cli -a 123456 info replication

看到connected_slaves:2,两个从节点(137 和 138)都显示state=online image.png

四、配置哨兵

1.配置三台哨兵(133/137/138 都要执行)

js
# 清空并创建sentinel.conf > /etc/redis/sentinel.conf vi /etc/redis/sentinel.conf

2.粘贴以下配置(三台完全相同):

js
port 26379 daemonize yes logfile "/var/log/redis-sentinel.log" dir "/tmp" sentinel monitor mymaster 192.168.201.133 6379 2 sentinel auth-pass mymaster 123456 sentinel down-after-milliseconds mymaster 3000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1

3.三台服务器都启动哨兵

js
redis-sentinel /etc/redis/sentinel.conf

4.验证哨兵状态(任意一台执行)

js
# 查看哨兵信息(应显示3个哨兵节点) redis-cli -p 26379 info sentinel # 查看监控的主节点详情 redis-cli -p 26379 sentinel masters # 查看监控的从节点详情(应显示2个) redis-cli -p 26379 sentinel slaves mymaster
  • 从哨兵输出可以看到:
  • sentinels=3:3 个哨兵节点全部在线
  • slaves=2:2 个从节点(137 和 138)全部正常连接
  • master-link-status: ok:主从复制链路正常
  • num-other-sentinels=2:哨兵之间互相发现

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!