docker搭建redis集群模式

docker 安装redis

1.创建redis.conf

开启redis验证(开启密码)

requirepass 123456

允许redis外地连接

注释掉 # bind 127.0.0.1

后台启动

daemiomze no

将daemonize yes注释起来或者daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败

开启redis持久化

appendonly yes

2.启动redis容器

docker run -p 6379:6379 --name myredis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf

3.进入容器

docker exec -it myredis /bin/bash

redis-cli进入操作界面

redis集群3主3从

1.新建6个redis容器

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data  redis:6.0.8 --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:6.0.8 --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:6.0.8 --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:6.0.8 --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:6.0.8 --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:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

2.构建主从关系

进入容器:

 docker exec -it redis-node-1 /bin/bash

(127.0.0.1)主机ip

redis-cli --cluster create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6385 127.0.0.1:6384 127.0.0.1:6386 --cluster-replicas 1

(172.17.48.78)主机ip不行

redis-cli --cluster create 172.17.48.78:6381 172.17.48.78:6382 172.17.48.78:6383 172.17.48.78:6384 172.17.48.78:6385 172.17.48.78:6386 --cluster-replicas 1

–cluster-replicas 1 为每一个master创建一个slave结点

image-20230228154729734

image-20230228154741033

3.查询集群信息

进入界面

redis-cli -p 6381

查询info

cluster info

image-20230228155047212

cluster nodes

image-20230228155122962

检查数据

 redis-cli --cluster check 127.0.0.1:6381

image-20230228200810597

停止redis-node-1发现,从结点变为主结点

image-20230228201450382

重新启动redis-node-1,变为从结点

image-20230228201839783

4.主从扩容

docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data  redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387

docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data  redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

image-20230228202648657

进入7号机

docker exec -it redis-node-7 bash

加入集群

redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6381

image-20230228203434802

查看加入情况

 redis-cli --cluster check 127.0.0.1:6381

image-20230228203600145

没有分配槽位

重新分配槽号

redis-cli --cluster reshard 127.0.0.1:6381

image-20230228203827853

16384/4 = 4096

image-20230228204144414

槽位会将之前的分别分给新的结点

增加从机

redis-cli --cluster add-node 127.0.0.1:6388 127.0.0.1:6387 --cluster-slave --cluster-master-id 2973761cb8b5af591c4601c715aa98022ffabacb

2973761cb8b5af591c4601c715aa98022ffabacb是主机6387的编号

image-20230228204731273

redis-cli --cluster check 127.0.0.1:6381

image-20230228204757694

5.主从缩容

先去出从结点的6388

redis-cli --cluster del-node 127.0.0.1:6388 dc2a65d1a3a20f56a781c1f51930333b71dd5684

image-20230228205557766

image-20230228205630245

重新分配槽位

redis-cli --cluster reshard 127.0.0.1:6381

image-20230228210204063

image-20230228210257164

从集群中删除

redis-cli --cluster del-node 127.0.0.1:6387 2973761cb8b5af591c4601c715aa98022ffabacb

image-20230228210512523

image-20230228210538864

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值