使用deskTop docker 来搭建redis 集群

最近迷上docker 了,整好前阵子公司整体redis 切集群了,公司虽然提供了供调试使用的dev 的redis 集群但是呢,我就是连不上,每车次连上的时候不是超时就说是有别的啥问题,蛋疼啊~现在自己使用docker准备搭建一个redis集群

首先准备材料:

1.准备docker 镜像源,这个是官方的github 库:https://github.com/Grokzen/docker-redis-cluster,还有Docker Desktop ,因为我本人没有linux 虚拟机也只能通过这个玩意来玩docker了,至于咋安装使用啊,百度吧~

2.开干(以下所有操作都是在windows powershell 中执行的):

1.首先在docker 内拉取这个 Grokzen/docker-redis-cluster 的文件,使用命令:docker pull grokzen/redis-cluster

2.待安装完成后开始启动,使用命令运行:docker run -e "IP=0.0.0.0" -e STANDALONE=true -e SENTINEL=true -p 7000-7005:7000-7005 -d grokzen/redis-cluster:latest

参数介绍:

-e "IP=0.0.0.0" 将内部IP环境变量添加到docker run命令中,这里的规则映射了 0.0.0.0,意味着将接受主机来自所有接口的流量。使用此容器在Mac计算机上运行Redis集群,则需要将容器配置为使用另一个IP地址进行集群发现,因为它无法使用硬编码到容器中的默认发现IP。
-e SENTINEL=true 默认情况下,未启用Sentinel实例。表示启用哨兵实例。如果-e "STANDALONE=true"通过该标志,则默认情况下在端口7006和7007上运行2个独立实例。但是,您可以将此变量设置为所需的多个独立节点,例如-e "STANDALONE=1"。请注意,独立端口在最后一个从属设备之后立即启动。如果-e "SENTINEL=true"传递了该标志,则在与群集的主实例匹配的端口5000到5002上运行3个Sentinel节点。

-p 7000-7005:7000-7005 端口映射,左边是宿主机也就是win 的端口号,右边是容器内的端口号,这里是映射了6个端口哦,包括:7000,7001,7002,7003,7004,7005 这6个端口,我也是第一次听说这样子的,完成后底下会回显一个容器ID如图:

![]()

3.执行docker ps 查看容器启动情况,如图:

![]()

这里我们可以看到容器内外端口映射的情况, 0.0.0.0:7000-7005->7000-7005/tcp 就是容器与宿主机之间的通信的端口

4.使用 docker exec -ti XXXX redis-cli -c -p 7000 命令来启动redis 的客户端,这里的 XXXX是容器的名称,使用docker ps 命令可以查询到最后一个NAMES 就是,如图:

![]()

启动成功后你便进入了redis的客户端了,前面会变成这样子:

![]()

5.使用命令 cluster info 来查询集群信息,如图:

![]()

6.使用cluster nodes 起启动节点信息:

![]()

7.使用命令测试下集群功能是否正常,如图:

![]()

验证ok

8.使用RedisPlus 这个redis 客户端连接后进行验证:

![]()

![]()

结果也是ok的!

打完收工~

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。