分分钟钟搞定Docker下面的redis sentinel集群

时间:2022-10-29 17:26:23

Docker下面安装redis sentinel集群

一:配置redis集群

1.去官网pull官方镜像,这边我用的版本是redis:3.2。命令如下:

docker pull  redis:3.2

2.查询镜像是否下载完毕,查看命令为docker images

分分钟钟搞定Docker下面的redis sentinel集群

3.运行redis镜像,启动redis容器。命令如下:

docker run --name redis-6379 -p 6379:6379 -d redis:3.2

分分钟钟搞定Docker下面的redis sentinel集群

redis-6379为容器名称、6379:6379(第一个为主机端口,第二个为容器内部端口)redis:3.2为镜像名称(因为6379以前已经启动过,所以截图里面我设置的是6382)。

这边我启动三个redis容器,容器名称分别为:redis-6379、redis-6380、redis-6381

输入docker ps 命令查看正在运行的容器,截图如下所示:

分分钟钟搞定Docker下面的redis sentinel集群

4.查询容器内部的IP,查看的命令为:docker inspect 容器ID 命令

分分钟钟搞定Docker下面的redis sentinel集群

分分钟钟搞定Docker下面的redis sentinel集群

分别查看三个容器的内部IP地址,三个内部IP地址如下:

redis-6379:172.17.0.2 6379

redis-6380:172.17.0.3 6380

redis-6381:172.17.0.4 6381

5.进入容器中,进入容器中命令如下:docker exec -i -t  0c5efe006731 /bin/bash

分分钟钟搞定Docker下面的redis sentinel集群

6.分别进入redis-6380,redis-6381容器,使用redis-cli命令,连接redis服务端。

分分钟钟搞定Docker下面的redis sentinel集群

7.将redis-6380,redis-6381容器所在redis服务设置成redis-6379的从数据库。设置从缓存数据库的命令为:SLAVEOF 172.17.0.3 6379 (其中172.17.0.3为上面查询到的内部IP地址,6379为内部的端口号地址)

分分钟钟搞定Docker下面的redis sentinel集群

截图上面是已经设置好了,所以会出现上面的提示。

8.使用info replication命令,查看是否是否设置成功。结果如下所示:

分分钟钟搞定Docker下面的redis sentinel集群

到上面一步redis集群就设置好了,接下来就是设置Redis哨兵。(这边有一个小技巧介绍一下,Ctrl+C是退出redis连接,Ctrl+D是退出容器)

二:配置Redis哨兵

1.分别docker exec -i -t  容器ID  /bin/bash 进入容器中,如下所示:

分分钟钟搞定Docker下面的redis sentinel集群

2.用命令cd / 进入根目录下面,如图所示:

分分钟钟搞定Docker下面的redis sentinel集群

3.因为容器刚初始化的时候不支持vim命令,所以这边我们需要先初始化vim。

命令如下:

先更新apt:apt-get update

初始化vim:apt-get install vim –y

4.利用vim创建sentinel配置文件,命令如下:vim  sentinel.conf

编写如下命令:sentinel monitor host6379 172.17.0.2 6379 1

host6379为sentinel服务名称,172.17.0.2为容器内部端口号,1为如果有一个sentinel服务认为redis挂了,就会重启一个从数据库变成主数据库。

详情的介绍如下所示:

分分钟钟搞定Docker下面的redis sentinel集群

文章地址链接为:https://www.cnblogs.com/LiZhiW/p/4851631.html

分分钟钟搞定Docker下面的redis sentinel集群

(之所以截图中文件内容和配置的不一样,是因为启动完之后会自动添加相关的内容进去)

这边需要注意的是,三个配置文件文件命令都是sentinel monitor host6379 172.17.0.2 6379 1

意思就是启动三个sentinel服务去监听主redis。

5.先在根目录创建log文件夹,进入文件夹中创建redis_log文件。

命令如下:

创建log文件夹: mkdir log

创建redis_log文件:touch redis_log

6.以后台运行的模式启动sentinel(后台命令具体的参数含义大家可以自己百度,这边不做介绍)

命令如下:nohup redis-sentinel /sentinel.conf >/log/redis_log>&1 &

将三个容器都配置好sentinel,并启动完毕之后,我们就可以进行集群检验了。

三:redis集群检验

1.在master数据库中设置键值,命令如下set key value (key为键,value为键值)

分分钟钟搞定Docker下面的redis sentinel集群

2.去SLAVE数据库中查看是否同步成功,结果如下:

分分钟钟搞定Docker下面的redis sentinel集群

(因为汉字不能直接显示,但是三张的编码就是上面的那个,所以是同步成功了)

3.关掉master主数据库所在的容器,看是否SLAVE数据库会自动升为master数据库。

分分钟钟搞定Docker下面的redis sentinel集群

分分钟钟搞定Docker下面的redis sentinel集群

我们看到其中一个SLAVE数据库已经自动升为master数据库了,所以配置是成功的。

参考博客地址:https://segmentfault.com/a/1190000010131816