最近迷上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的!

打完收工~