Sentinel(哨兵)模式是什么?
Sentinel(哨兵)是Redis高可用的解决方案,由一个或者多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。
搭建 Redis Sentinel 环境
- 安装docker环境
安装方法点击 - 获取Redis镜像
docker pull redis:5.0.5
- 新建外挂文件的挂载点
mkdir /usr/local/conf/redis-master
mkdir /usr/local/conf/redis-slave
mkdir /usr/local/conf/redis-sentinel
将配置文件 redis.conf 和 sentinel.conf放入到上面3个配置文件中
- 启动容器
docker run -d -p 6379:6379 -v /usr/local/conf/redis-master/redis.conf:/data/redis.conf --name redis-master redis:5.0.5 redis-server redis.conf
docker run -d -p 6380:6379 -v /usr/local/conf/redis-slave/redis.conf:/data/redis.conf --name redis-slave redis:5.0.5 redis-server redis.conf
- 配置从节点
- 查看主节点的内网ip
docker container inspect redis-master
redis-master容器信息
- 进入从节点的容器内部
docker exec -it redis-slave redis-cli
- 执行SLAVEOF命令
SLAVEOF 172.17.0.2 6379
-
配置哨兵节点
sentinel.conf
将配置文件的127.0.0.1改成对应的master的ip本文中为:172.17.0.2
将配置文件的2改成1(需要多少个哨兵投票同意可以使slave转成master)
启动哨兵节点
docker run -d -p 26379:26379 -v /usr/local/conf/redis-sentinel/sentinel.conf:/data/sentinel.conf --name redis-sentinel redis:5.0.5 redis-sentinel sentinel.conf
哨兵.png
校验哨兵模式
-
查看各个节点的角色
redis-master.png
- 关闭redis-master容器
docker container stop redis-master
redis-slave.png
可以看到redis-slave节点中的解决变成了master节点了
网友评论