简单来说哨兵就是带有自动故障转移功能的主从架构
1.下载配置sentinel文件,
1 | wget http://download.redis.io/redis-stable/sentinel.conf |
2./var/lib/docker/sentinel/sentinel.conf/修改配置文件,然后复制一份到容器外部/etc/redis/sentinel.conf,
1 | bind 0.0.0.0 :外部访问 |
3.docker运行一个哨兵,docker ps查看是否运行成功
1 | docker run -it --name sentinel -p 26379:26379 -v /var/lib/docker/sentinel/sentinel.conf:/etc/redis/sentinel.conf -d redis |
4.进入容器内部
1 | docker exec -it sentinel /bin/bash |
5.启动哨兵,记得一定要指定配置文件
1 | redis-sentinel /etc/redis/sentinel.conf |
6.启动哨兵客户端,记得一定要指定端口号
1 | redis-cli -p 26379 |
7.info命令查看哨兵情况,在最底部有哨兵信息
1 | # Sentinel |
8.将主机6379容器关闭,
1 | docker stop redis |
9.有三种方式可以验证,一是在哨兵客户端info里面查看,最底部的master的端口已经改变,二是可以分别查看两个从机的信息(使用info replication命令),可以看到其中一个的role已经变成了master,三是从机是不具备写操作的,可以在两个从机分别进行写操作,不报错的就是新的主机。
10.容器目前运行情况为一个可视化工具,一个主机,两个从机,一个哨兵