docker搭建redis集群模式

目录

  • docker 安装redis
    • 1.创建redis.conf
      • 开启redis验证(开启密码)
      • 允许redis外地连接
      • 后台启动
      • 开启redis持久化
    • 2.启动redis容器
    • 3.进入容器
  • redis集群3主3从
    • 1.新建6个redis容器
    • 2.构建主从关系
    • 3.查询集群信息
    • 4.主从扩容
    • 5.主从缩容

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结点

docker搭建redis集群模式_第1张图片

docker搭建redis集群模式_第2张图片

3.查询集群信息

进入界面

redis-cli -p 6381

查询info

cluster info

docker搭建redis集群模式_第3张图片

cluster nodes

docker搭建redis集群模式_第4张图片

检查数据

 redis-cli --cluster check 127.0.0.1:6381

docker搭建redis集群模式_第5张图片

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

docker搭建redis集群模式_第6张图片

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

docker搭建redis集群模式_第7张图片

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

docker搭建redis集群模式_第8张图片

进入7号机

docker exec -it redis-node-7 bash

加入集群

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

docker搭建redis集群模式_第9张图片

查看加入情况

 redis-cli --cluster check 127.0.0.1:6381

docker搭建redis集群模式_第10张图片

没有分配槽位

重新分配槽号

redis-cli --cluster reshard 127.0.0.1:6381

docker搭建redis集群模式_第11张图片

16384/4 = 4096

docker搭建redis集群模式_第12张图片

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

增加从机

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

2973761cb8b5af591c4601c715aa98022ffabacb是主机6387的编号

docker搭建redis集群模式_第13张图片

redis-cli --cluster check 127.0.0.1:6381

docker搭建redis集群模式_第14张图片

5.主从缩容

先去出从结点的6388

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

docker搭建redis集群模式_第15张图片

docker搭建redis集群模式_第16张图片

重新分配槽位

redis-cli --cluster reshard 127.0.0.1:6381

docker搭建redis集群模式_第17张图片

docker搭建redis集群模式_第18张图片

从集群中删除

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

docker搭建redis集群模式_第19张图片

docker搭建redis集群模式_第20张图片

你可能感兴趣的:(docker,docker,容器)