阅读须知:
本文主要内容为 Redis 哨兵机制搭建的详细步骤(以三哨兵为例)。
想要了解如何安装 Redis 的同学可以前往:
想要了解如何搭建 Redis 主从的同学可以前往:
本文在前两文的基础上,进一步搭建起 Redis 的哨兵机制。
操作步骤
1. 创建配置文件
演示图例如下:
2. 编辑配置文件
- 通过 vim 编辑器编辑配置文件内容,同样三个配置文件均需要分别编辑
- 按下
i ,进入输入模式,粘贴如下内容 - 按下
:,输入wq,保存并退出
哨兵1:跟踪 Redis(主)
port 26379
sentinel monitor redis_6379 172.18.12.10 6379 2
sentinel down-after-milliseconds redis_6379 30000
哨兵2:跟踪 Redis(从1)
port 26380
sentinel monitor redis_6379 172.18.12.10 6379 2
sentinel down-after-milliseconds redis_6379 30000
哨兵3:跟踪 Redis(从2)
port 26381
sentinel monitor redis_6379 172.18.12.10 6379 2
sentinel down-after-milliseconds redis_6379 30000
演示图例如下:
3. 创建容器
输入对应指令,创建运行哨兵的容器。
创建第一个哨兵(26379):
docker run -it \
--name sentinel_26379 \
--privileged \
--network my_docker_net \
--ip 172.18.12.20 \
-p 26379:26379 \
-v /usr/local/software/redis/6379/sentinel/sentinel.conf:/data/redis-sentinel.conf \
-d redis \
redis-sentinel redis-sentinel.conf
创建第二个哨兵(26380):
docker run -it \
--name sentinel_26380 \
--privileged \
--network my_docker_net \
--ip 172.18.12.21 \
-p 26380:26380 \
-v /usr/local/software/redis/6380/sentinel/sentinel.conf:/data/redis-sentinel.conf \
-d redis \
redis-sentinel redis-sentinel.conf
创建第三个哨兵(26381):
docker run -it \
--name sentinel_26381 \
--privileged \
--network my_docker_net \
--ip 172.18.12.22 \
-p 26381:26381 \
-v /usr/local/software/redis/6381/sentinel/sentinel.conf:/data/redis-sentinel.conf \
-d redis \
redis-sentinel redis-sentinel.conf
演示图例如下:
4. 测试哨兵机制
a. 启动容器
- 输入
docker ps -a,查看容器创建情况 - 输入
docker start 容器名/容器id,启动对应容器
演示图例如下:
b. 查看对应哨兵状态
依次进入6379、6380、6381容器,查看对应哨兵状态
演示图例如下:
进入redis_6379:
进入redis_6381:
c. 关闭 master
输入 docker stop redis_6379,关闭主机,模拟主机宕机的情况
演示图例如下:
d. 查看从机状态
等待一会后,依次进入两个从机查看对应从机状态
演示图例如下:
进入redis_6380:
进入redis_6381:
从演示图例中可以看到,本该为从机的6381成为了主机,由此可以看出哨兵机制已经搭建成功!