哨兵作用:
1、通过发送命令,让Redis服务返回监测其运行状态,包括主服务和从服务器
2、当哨兵监测到主服务master宕机,会自动将slave切换成master,然后通过发布,订阅模式,通知其他从服务器,修改配置文件,并且会同步服务之间的数据。
搭建过程,首先需要搭建redis 搭建主从复制集群,可以看我之前搭建主从复制博客。
准备好三台服务器,都已经安装好了redis.
IP | |
192.168.1.7 | master |
192.168.1.8 | salve0 |
192.168.1.11 | salve1 |
第一:拷贝sentinel.conf文件到redis安装目录
redis是安装在 /usr/local/redis
拷贝命令: cp sentinel.conf /usr/local/redis
第二:修改sentinel.conf配置文件:
cd /usr/local/redis, 修改 sentinel.conf,如下:
vim sentinel.conf
#开启任何IP都可以访问,
protected-mode no
#默认端口
port 26379
#后台启动哨兵模式
daemonize yes
#指定进程文件地址
pidfile "/var/run/redis-sentinel.pid"
#指定日志文件地址
logfile "/usr/local/redis/sentinel/redis-sentinel.log"
#指定工作目录
dir "/usr/local/redis/sentinel"
sentinel deny-scripts-reconfig yes
#指定别名 master主节点地址 端口 哨兵个数(有几个哨兵监控到主节点宕机执行转移)
#zz-master 后跟的是master的ip和端口,最后一个'2'代表我要启动只要有2个sentinel认为master下线,就认为该master客观下线,启动failover并选举产生新的master。通常最后一个参数不能多于启动的sentinel实例数。建议至少启动三台sentinel实例。
sentinel monitor zz-master 192.168.1.11 6379 2
#配置连接redis主节点密码
sentinel auth-pass zz-master password
#如果哨兵3s内没有收到主节点的心跳,哨兵就认为主节点宕机了,默认是30秒
sentinel down-after-milliseconds zz-master 10000
sentinel auth-pass zz-master password
# 执行故障转移时, 最多有几个从服务器同时对新的主服务器进行同步,一般而言,这个数字越小同步时间越长,而越大,则对网络资源要求比较高
sentinel config-epoch zz-master 1
:wq 保存文件,
第三: 拷贝到其他两台服务器 使用远程拷贝命令:
scp sentinel.conf root@192.168.1.7:/usr/local/redis/
第四:启动哨兵
redis-sentinel sentinel.conf 提示错误 ,创建 sentinel文件夹 命令: mkdir /usr/local/redis/sentinel -p
再次启动:说明哨兵启动成功了,同样启动其他服务器的哨兵
需要注意一点,192.168.1.7 为master节点,master 宕机后,salve节点成为master节点,再启动原来宕机master节点,会变成salve节点