0%

redis之哨兵机制

简单来说哨兵就是带有自动故障转移功能的主从架构

1.下载配置sentinel文件,

1
wget http://download.redis.io/redis-stable/sentinel.conf

2./var/lib/docker/sentinel/sentinel.conf/修改配置文件,然后复制一份到容器外部/etc/redis/sentinel.conf,

1
2
3
4
5
bind 0.0.0.0    :外部访问

daemonize yes :后台运行

sentinel monitor mymaster 192.168.139.188 6379 1 :设置哨兵,主机ip,端口,哨兵数量

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

sentinel

7.info命令查看哨兵情况,在最底部有哨兵信息

1
2
3
4
5
6
7
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.139.188:6379,slaves=2,sentinels=1

showSentinel

8.将主机6379容器关闭,

1
docker stop redis

9.有三种方式可以验证,一是在哨兵客户端info里面查看,最底部的master的端口已经改变,二是可以分别查看两个从机的信息(使用info replication命令),可以看到其中一个的role已经变成了master,三是从机是不具备写操作的,可以在两个从机分别进行写操作,不报错的就是新的主机。

cantSet

10.容器目前运行情况为一个可视化工具,一个主机,两个从机,一个哨兵

showAll

----------本文结束感谢您的阅读----------