Docker之Redis集群配置

前序操作

  1. 确保docker中已安装redis镜像,如果没有则需要先安装镜像
docker pull redis
  1. 在宿主机 /data/redis/conf下新建redis.conf配置文件, 内容加上appendonly yes 以保证数据的持久化
    基于镜像创建redis实例并启动
docker run -d -p 6379:6379 --name redis \ #-p 6379:6379 容器内部端口与宿主机端口完成映射  -d 已守护进程模式启动(确保退出容器的时候依旧运行)
-v /data/redis/data:/data \ #将redis容器内的/data目录挂载到宿主机的/data/redis/data目录,保证数据的同步(双向同步)
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \ #完成配置文件的双向同步
-d redis redis-server /etc/redis/redis.conf # redis-server启动的时候已redis.conf中的配置启动
  1. 以交互模式进入容器内部
docker exec -it 容器id /bin/bash   #-it: i为interactive t为ttl
  1. 进入命令行
redis-cli
  1. 输入ping 返回pong就没问题了

启动redis容器

这里演示启动六个容器,遵循3主3从模式,命令如下:

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis --cluster-enabled yes --appendonly yes --port 6386

–net host 使用宿主机的ip和端口(默认)
–privileged=true 相当于拥有宿主机root用户权限
redis redis镜像

键入docker ps 如果显示如下,则启动成功
在这里插入图片描述

构建集群

  1. 进入任何一个redis容器,比如进入node-1容器
docker exec -it redis-node-1 /bin/bash
  1. 输入以下命令构建集群
redis-cli --cluster create 1.117.164.248(ip地址):6381(端口号) 1.117.164.248:6382 1.117.164.248:6383 1.117.164.248:6384 1.117.164.248:6385 1.117.164.248:6386 --cluster-replicas 1
  1. 出现All 16384 slots covered则是成功了,redis随机选择三主三从
    在这里插入图片描述
    注意:如果输入yes一直处于等待状态,那就看一下自己的宿主机是不是云服务器,如果是则需要开启防火墙(安全组),允许端口能进行访问,六个节点需要允许访问12个端口,比如针对node-1节点,需要开启6381端口和6381+10000端口,也就是16381端口的访问,全都设置完后就可以了

查看集群状态

  1. 随便进入一个docker容器,输入cluster info,可查看集群信息
docker exec -it redis-node-1 /bin/bash
redis-cli -p 6381 #不指定端口会进入6379,就不是集群环境了
cluster info

返回结果如下:
在这里插入图片描述
2. 输入cluster nodes,可查看集群与结点的对应关系,返回结果如下:

在这里插入图片描述
主节点:b8a6c8bd315677a6bba687270751c48982bc86d9
从节点:898c6ac7d12bcdf98166c67c2b576f25cb41987d

主节点:fb334a5774b0be37e7668fc64ece38d14aa25d6f
从节点:106fa0b367105483de81a6a9e1539a39e8726cb9

主节点:019a92c6bc2a1ba3c50f5f54dda0406854c1ec4a
从节点:85c015a280e509496e39526bbb5748adb4205c93

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值