redis 4.0.13 -- 哨兵模式
1、前提
本文使用的是redis-4.0.13.tar.gz版本。
redis各版本下载地址:http://download.redis.io/releases/ , 下载与安装单个redis查看我的另一篇《redis 4.0.13 -- 单个redis下载、安装、启动、验证》的“1、下载与初始化redis”
按照我之前的文章《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 部分内容会被哨兵自动更新值。