下面以 CentOS 7/8 为例,讲一下 Redis 哨兵(Sentinel) 的搭建与配置,假设是 1 主 2 从 + 3 哨兵 的经典架构。
| 角色 | IP | 端口 |
|---|---|---|
| Redis 主 | 192.168.1.10 | 6379 |
| Redis 从1 | 192.168.1.11 | 6379 |
| Redis 从2 | 192.168.1.12 | 6379 |
| Sentinel1 | 192.168.1.10 | 26379 |
| Sentinel2 | 192.168.1.11 | 26379 |
| Sentinel3 | 192.168.1.12 | 26379 |
yum install -y epel-release
yum install -y redis
启动并开机自启:
systemctl enable redis
systemctl start redis
vim /etc/redis.conf
关键配置:
bind 0.0.0.0
protected-mode no
daemonize yes
重启:
systemctl restart redis
vim /etc/redis.conf
bind 0.0.0.0
protected-mode no
daemonize yes
replicaof 192.168.1.10 6379
重启:
systemctl restart redis
验证:
redis-cli info replication
vim /etc/redis-sentinel.conf
基础配置:
port 26379
daemonize yes
protected-mode no
sentinel monitor mymaster 192.168.1.10 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
说明:
mymaster:主节点名称(自定义)2:至少 2 个哨兵认为宕机才切换down-after-milliseconds:5 秒无响应认为下线systemctl enable redis-sentinel
systemctl start redis-sentinel
确认端口:
netstat -lntp | grep 26379
redis-cli -p 26379
> sentinel masters
> sentinel slaves mymaster
> sentinel sentinels mymaster
主节点停掉:
systemctl stop redis
几秒后查看:
redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
会自动选出新主。
✅ 防火墙
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --add-port=26379/tcp --permanent
firewall-cmd --reload
✅ 云服务器注意安全组
✅ 建议 Redis 和 Sentinel 分开部署
如果你需要 Docker 版哨兵 或 一机多实例配置,也可以告诉我。