redis sentinel哨兵机制核心配置
1. 前提:
先搭好一主两从redis的主从复制,和之前的主从复制搭建一样,搭建方式如下:
A)主节点6379节点(/usr/local/bin/conf/redis6379.conf):
修改 requirepass 12345678,注释掉#bind 127.0.0.1
B) 从节点redis6380.conf和redis6381.conf: 配置都一样
修改 requirepass 12345678 ,注释掉#bind 127.0.0.1,
加上访问主节点的密码masterauth 12345678 ,加上slaveof 192.168.152.128 6379
注意 当主从起来后,主节点可读写,从节点只可读不可写
1 | redis.conf |
2. redis sentinel哨兵机制核心配置
(也是3个节点):
/usr/local/bin/conf/sentinel_26379.conf
/usr/local/bin/conf/sentinel_26380.conf
/usr/local/bin/conf/sentinel_26381.conf
三个文件的端口改成: 26379 26380 26381
然后:
sentinel monitor mymaster 192.168.152.128 6379 2 //监听主节点6379
sentinel auth-pass mymaster 12345678 //连接主节点时的密码
三个配置除端口外,其它一样。
port 26379
dir /tmp
sentinel monitor mymaster 192.168.171.129 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
3. 其它的配置:
a,如果转移超时失败,下次转移时时间为之前的2倍;
b,从节点变主节点时,从节点执行slaveof no one命令一直失败的话,当时间超过180S时,则故障转移失败
c,从节点复制新主节点时间超过180S转移失败
4.查看集群状态
进入容器后:
1 | redis-cli -a 123456 |
查看当前节点的信息
5.部署建议
a,sentinel节点应部署在多台物理机(线上环境)
b,至少三个且奇数个sentinel节点
c,通过以上我们知道,3个sentinel可同时监控一个主节点或多个主节点
监听N个主节点较多时,如果sentinel出现异常,会对多个主节点有影响,同时还会造成sentinel节点产生过多的网络连接,
一般线上建议还是, 3个sentinel监听一个主节点