烂笔头

不积跬步无以至千里

0%

redis哨兵实现高可用

经典三节点实现高可用架构设计

1
2
3
4
5
6
7
8
9
       +----+
| M1 |
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+

创建需要得文件夹

1
2
3
mkdir /etc/sentinel/
touch /etc/sentinel/5000.conf
mkdir /var/sentinel/5000

编写配置文件

分别在M1,R2,R3三台机器上执行vim /etc/sentinel/5000.conf

1
2
3
4
5
6
7
8
9
10
11
port 5000
logfile "/var/run/log/sentinel.log"
dir "/var/sentinel/5000"
daemonize yes
sentinel monitor mymaster 192.168.0.X 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

# 如果master设置了密码
sentinel auth-pass mymaster a123456

启动哨兵

1
redis-sentinel /etc/sentinel/5000.conf

或者

1
redis-server /etc/sentinel/5000.conf --sentinel

检查哨兵状态

info sentinel 获取主从、哨兵信息
sentinel master mymaster 检查master是否运行良好
SENTINEL replicas mymaster 查看连接到master得从库信息
sentinel sentinels mymaster 查看哨兵信息
sentinel get-master-addr-by-name mymaster 获取当前master节点
配合以上命令,手动shutdown master或redis-cli -p 6379 DEBUG sleep 30 进行容灾演练。