首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

Docker下面安装redis sentinel集群

一:配置redis集群

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

docker pull redis:3.2

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

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

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

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

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

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

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

分别查看三个容器的内部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

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

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

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

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

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

二:配置Redis哨兵

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

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

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挂了,就会重启一个从数据库变成主数据库。

详情的介绍如下所示:

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

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

这边需要注意的是,三个配置文件文件命令都是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为键值)

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

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

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

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180125G0ZZJU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券