承接上一博客,配置两个从 redis6380和redis6381,一个主 redis。机器环境是win10
配置哨兵
实际环境,每个服务器有一个哨兵,例如:n台服务器,每台服务器4个redis实例,那么哨兵数量为n,并不是4n。当前为测试哨兵,只有一个机器,所以每个redis一个哨兵。
1.在redis、redis6380、redis6381下面分别建立sentinel.conf文件
#当前Sentinel服务运行的端口
port 26379
#Sentinel去监视一个名为mymaster的主redis实例,这个主实例的IP地址为本机地址127.0.0.1,端口号为6379
sentinel monitor mymaster 127.0.0.1 6379 1
#指定了Sentinel认为Redis实例已经失效所需的毫秒数。当 实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。
sentinel down-after-milliseconds mymaster 3000
这个是master的sentinel.conf,两个master的sentinel.conf文件除了port其他配置文件,他们的port分别为26380、26381
测试
1.打开三个doc窗口,分别进入redis、redis6380、redis6381目录,输入命令,启动redis
redis-server.exe redis.windows.conf
2.把 redis6380 和 redis6381 设置为从,redis设置为主,对 redis6380 和 redis6381执行命令
slaveof 127.0.0.1 6379
3.打开哨兵,依旧在redis目录下分别运行
redis-server.exe sentinel.conf --sentinel
运行后如下:
现在主是redis,我们关闭redis,来看看redis6380、redis6381以及哨兵的反应,对redis窗口ctrl +c
哨兵,6379关闭后 6381变成主:
redis6380,可以进行写命令了,从是不可以写的
redis6381,依旧不能写
接下来重启启动6379端口,哨兵反应:
6379成为了一个新的从,不可写,6380和6381不变: