本篇是继《redis主从持久化配置》的续篇
环境同之,只单单编写哨兵
先来看下,现在的redis容器有哪几个
其中端口为6379的是主节点,6380、6381分别是从节点,端口为26379、26380的分别是两个哨兵
再看一下文件夹目录
上面容器的配置文件都存放在对应的目录里
下面是正文
第一步、先建立好两个哨兵的配置文件的存放目录
分别是上图中redis_sentinel和redis_sentinel_2
第二步、下载并修改哨兵配置文件
(1)下载文件地址
wget http://download.redis.io/redis-stable/sentinel.conf
(2)修改配置
# 让服务以后台守护线程的方式运行
daemonize yes
# 修改日志文件的路径
logfile "/var/log/redis/sentinel.log"
# 监听主节点
# 数字 2 表示起码要两名哨兵都判定主节点下线后,才进行投票另选其他某个从节点作为主节点
sentinel monitor redis6379 172.17.0.3 6379 2
(A)之前6.0.6只需要配上面的配置,6.2.6又试了一下,如果只配置上面的配置信息,提示No such master with specified name,将所有写有“mymaster”的地方都替换为主节点的名称就好了
(B)如果执行了下面的命令后,在执行redis-sentinel /usr/local/etc/redis/sentinel.conf时提示sentinel.conf配置里有问题,那么就按照(A)里面的方式先把sentinel.conf配置一遍,然后删掉容器,重新执行下面的命令(docker run....),目的是重新把宿主机目录挂载到容器里
第三步、启动容器运行哨兵
(1)先启动容器
docker run -it --name redis_sentinel2 -p 26380:26380 -v /config/redis/redis_sentinel_2/conf/sentinel.conf:/usr/local/etc/redis/sentinel.conf -d redis /bin/bash
(2)再启动哨兵站岗
#进入容器
docker exec -it sentinel bash
#建立好在配置文件中配置的日志路径
mkdir /var/log/redis/
touch /var/log/redis/sentinel2.log
#启动哨兵
redis-sentinel /usr/local/etc/redis/sentinel.conf
完毕
下面演示一下,主节点挂掉之后,哨兵的投票。
我把6379的主节点stop了,现在可以看出,哨兵选择了6380的从节点作为了主节点。
当我再次启动6379的时候,这时候6379自动变为了桥接地址为172.17.0.4节点的从节点,也就是redis6380节点的从节点
至此说明,哨兵配置成功。