正文
环境搭建:
前言:
小编使用的redis的版本号是5.0.5,可能会略有不同,例如redis.conf配置文件中,没有slaveof这一项配置
虚拟机一定要关闭掉防火墙
本次使用7006作为master,7007,7008作为slave
为了方便直接在slave的配置文件中写好master的配置(配从不配主),配置好master的ip,redis的端口和密码
slave的redis.conf里主机配置:
启动主机和从机后一主二从模式就ok了,可以简单测试一下
下面开始配置哨兵
新建了一个sentinel文件夹用来存储哨兵的配置文件,并创建了哨兵的配置文件sentinel.conf(建议直接拷贝文件名):
小编是配置放在了安装目录下:/usr/local/bin
a、mkdir sentinel
b、touch sentinel.conf
c、在sentinel.conf文件中增加如下配置:
1.sentinel monitor <master-name> <ip> <redis-port> <quorum>
告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效。
master-name只能包含英文字母,数字,和“.-_”这三个字符需要注意的是master-ip 要写真实的ip地址而不要用回环地址(127.0.0.1),
如果在同一台主机上测试也是可以的( sentinel monitor (自己起名字) 127.0.0.1 6379 1)。
配置示例:
sentinel monitor mymaster 192.168.1.5 6379 2
2.sentinel auth-pass <master-name> <password>
设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。
配置示例:sentinel auth-pass mymaster 0123passw0rd
示例:
d、在安装目录下执行redis-sentinel sentinel/sentinel.conf开启监控
后记:
模拟步骤:
原master使用的是7006,后启动了哨兵模式,让master模拟故障(shutdown),哨兵选取了slave 7007作为新的master,slave 7008挂载到7007下,
打开7008的redis.conf配置文件也发现,7008的配置文件也被哨兵修改了,由原本的7006改为了7007
此时将7006重新启动,稍后可以发现7006作为7007的slave并入复制结构中,打开7006的配置文件可以发现,在7006配置文件的最下方追加了replicaof master的信息,但是没有追加密码信息;
重启7006的redis服务器,也会因为配置文件被修改而直接作为7007的slave出现
转自:https://www.cnblogs.com/lzghyh/p/12162688.html