redis 4.0.13 -- 哨兵模式

1、前提

 本文使用的是redis-4.0.13.tar.gz版本。

redis各版本下载地址:http://download.redis.io/releases/

按照我之前的文章《redis 4.0.13 -- 主从模式》先在安装好主从。

但是主从模式有个缺点,如果主挂了,从没办法知道,所以需要哨兵。但是如果这个哨兵也挂了呢?所以需要3个哨兵。。。

2、新建哨兵配置文件

mkdir redis-sentinel 在redis-4.0.13目录下新建redis-sentinel文件夹

vim redis-sentinel.conf 新建哨兵配置文件,添加以下内容:

#sentinel端口
port 26379
#工作路径,注意路径不要和主重复
dir "/home/program/redis-4.0.13/redis-sentinel"
# 守护进程模式
daemonize yes
#关闭保护模式
protected-mode no
# 指明日志文件名
logfile "/home/program/redis-4.0.13/sentinel.log"
#哨兵监控的master,主从配置一样,这里只用输入redis主节点的ip/port和法定人数。
sentinel myid c186cf19d1e2533f21b650cca31fccabaa266293               //这一行由启动成功的哨兵自己写入,不必人工编辑
# master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel deny-scripts-reconfig yes
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel monitor mymaster 192.168.10.150 6379 2      //监控master节点所在的IP端口,并设置2个sentinel哨兵监控到master节点挂掉才能启动故障转移,把其中一台slave升级为master,如果旧master恢复正常,也加入slave。
#设置master和slaves验证密码
#sentinel auth-pass mymaster 123456
#sentinel parallel-syncs mymaster 1      //指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步

# Generated by CONFIG REWRITE 以下内容都是sentinel在启动之后会自己改的,默认都注释掉即可
sentinel down-after-milliseconds mymaster 5000      //在master挂掉后多少毫秒后才算真的master挂掉
sentinel failover-timeout mymaster 18000            //故障转移超时时间(毫秒)。如果Redis的master节点出现问题,Sentinel能够启动一个故障转移处理,该处理会将一个slave节点提升为master节点,其他的slave节点则会自动配置成新的master节点的slave节点,如果原来的master重新正常启动后,也会成为该新Master的slave节点。
sentinel config-epoch mymaster 3                
sentinel leader-epoch mymaster 3
sentinel known-slave mymaster 192.168.10.140 6379       //已知的slave节点
sentinel current-epoch 3
3、启动哨兵
cd /home/program/redis-4.0.13 
src/redis-sentinel redis-sentinel/redis-sentinel.conf        重点!启动三次就是启动了三个哨兵。查看哨兵启动进程:  ps -ef|grep redis

 4、验证哨兵

把主redis,即master kill掉,可以看到从的客户端info命令里,已经由slave变成了master,表示哨兵启用成功。

哨兵启用成功之后, redis-sentinel.conf 配置里的 # Generated by CONFIG REWRITE 部分内容会被哨兵自动更新值。

猜你喜欢

转载自www.cnblogs.com/zhuwenjoyce/p/12288388.html