手工部署 Redis 哨兵模式(1主2从+3哨兵)详细步骤
环境准备
主机规划:
- 主节点(Master): 192.168.1.31
- 从节点1(Replica1): 192.168.1.60
- 从节点2(Replica2): 192.168.1.104
- 哨兵(Sentinel): 在所有3个节点上部署
软件要求:
- Redis 7.4.0(已编译好的
redis.7.4.0.tar.gz
) - Linux 系统(CentOS/RHEL/Ubuntu)
- 确保节点间网络互通(防火墙开放6379和26379端口)
- Redis 7.4.0(已编译好的
1. 安装 Redis 7.4.0
在所有节点执行以下步骤:
1.1 解压并安装 Redis
# 上传 redis.7.4.0.tar.gz 到 /opt 目录
cd /opt
tar xzf redis.7.4.0.tar.gz
mv redis /opt/redis-7.4.0
ln -s /opt/redis-7.4.0 /opt/redis
# 创建软链接到 /usr/local/bin
ln -s /opt/redis/bin/redis-server /usr/local/bin/redis-server
ln -s /opt/redis/bin/redis-cli /usr/local/bin/redis-cli
ln -s /opt/redis/bin/redis-sentinel /usr/local/bin/redis-sentinel
1.2 创建 Redis 用户和目录
useradd -s /sbin/nologin redis
mkdir -p /etc/redis /var/lib/redis /var/log/redis
chown -R redis:redis /etc/redis /var/lib/redis /var/log/redis
1.3 配置系统参数
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p
2. 配置 Redis 主从
2.1 主节点配置(192.168.1.31)
编辑 /etc/redis/redis.conf
:
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis.pid
logfile /var/log/redis/redis.log
dir /var/lib/redis
appendonly yes
appendfilename "appendonly.aof"
requirepass "your_strong_password"
masterauth "your_strong_password"
启动 Redis:
redis-server /etc/redis/redis.conf
2.2 从节点配置(192.168.1.60 和 192.168.1.104)
编辑 /etc/redis/redis.conf
(在两台从节点上配置相同):
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis.pid
logfile /var/log/redis/redis.log
dir /var/lib/redis
appendonly yes
appendfilename "appendonly.aof"
requirepass "your_strong_password"
masterauth "your_strong_password"
replicaof 192.168.1.31 6379
启动 Redis:
redis-server /etc/redis/redis.conf
2.3 验证主从同步
在主节点执行:
redis-cli -a your_strong_password info replication
输出应包含:
role:master
connected_slaves:2
slave0:ip=192.168.1.60,port=6379,state=online
slave1:ip=192.168.1.104,port=6379,state=online
3. 配置 Redis 哨兵(所有节点)
3.1 编辑哨兵配置文件
在 所有节点 上编辑 /etc/redis/sentinel.conf
:
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /var/log/redis/sentinel.log
sentinel monitor mymaster 192.168.1.31 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster your_strong_password
3.2 启动哨兵
redis-sentinel /etc/redis/sentinel.conf
3.3 验证哨兵状态
redis-cli -p 26379 sentinel master mymaster
输出应包含主节点信息:
ip: 192.168.1.31
port: 6379
num-slaves: 2
4. 测试故障转移
4.1 模拟主节点宕机
在主节点(192.168.1.31)执行:
redis-cli -a your_strong_password shutdown
4.2 观察哨兵自动切换
在任意哨兵节点执行:
redis-cli -p 26379 sentinel master mymaster
约5秒后,哨兵会选举新的主节点(原从节点之一)。
4.3 恢复旧主节点
重启原主节点后,它会自动变为从节点:
redis-server /etc/redis/redis.conf
5. 关键命令总结
用途 | 命令 |
---|---|
启动Redis | redis-server /etc/redis/redis.conf |
启动哨兵 | redis-sentinel /etc/redis/sentinel.conf |
检查主从状态 | redis-cli -a your_password info replication |
检查哨兵状态 | redis-cli -p 26379 sentinel master mymaster |
手动故障转移 | redis-cli -p 26379 sentinel failover mymaster |
6. 注意事项
- 防火墙:确保开放
6379
(Redis)和26379
(Sentinel)端口。 - 密码安全:替换
your_strong_password
为高强度密码。 - 持久化:
appendonly yes
确保数据持久化。 - 日志监控:定期检查
/var/log/redis/redis.log
和/var/log/redis/sentinel.log
。
按照以上步骤操作后,您将获得一个高可用的 Redis 哨兵集群!
作者:admin 创建时间:2025-06-06 11:10
最后编辑:admin 更新时间:2025-06-07 09:49
最后编辑:admin 更新时间:2025-06-07 09:49