您当前的位置: 首页 >  docker

Redis——docker构建的Redis集群

庄小焱 发布时间:2022-01-09 16:37:01 ,浏览量:4

摘要

如果海量数据的存储采用的Redis来构建。本博文采用的docker构建redis集群的构建。

一、docker构建单个redis服务
1、查看可用的 Redis 版本

docker search redis

2、取最新版的 Redis 镜像

docker pull redis:latest

3、查看本地镜像

docker images

4、运行容器

docker run -itd --name redis-test -p 6379:6379 redis

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

5、安装成功

docker exec -it redis-test(容器ID)  /bin/bash

二、docker构建redis集群服务 2.1 三主三从集群实战

新建容器需要挂载文件夹

cd /data/redis/share/

mkdir redis-node-1

mkdir redis-node-2

mkdir redis-node-3

mkdir redis-node-4

mkdir redis-node-5

mkdir redis-node-6

启动redis六个容器

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

 配置六个节点成为集群

进入容器redis-node-1

docker exc -it redis容器ID /bin/bash

6台机器构建集群关系

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

链接进入6381作为切入点,查看集群状态
cluster info

cluster nodes

2.2 redis集群扩缩容实战
新的启动两个redis节点

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

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

向集群节点中添加节点

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

重新分派槽号

redis-cli --cluster reshard 192.168.25.140:6381

向集群节点中添加节点的从节点

redis-cli --cluster add-node 192.168.25.140:6388 192.168.25.140:6387 --cluster-slave --cluster-master-id d367adf4c1cf80bfb3ccf7fa01c299ad59ca9873

从集群中将4号从节点6388删除

redis-cli --cluster del-node 192.168.111.147:6388 5d149074b7e57b802287d1797a874ed7a1a284a8 redis-cli --cluster check 192.168.111.147:6382  检查一下发现,6388被删除了,只剩下7台机器了。  

将6387的槽号清空,重新分配,本例将清出来的槽号都给6381

redis-cli --cluster reshard 192.168.25.140:6381

将6387删除

redis-cli --cluster del-node 192.168.111.147:6387 e4781f644d4a4e4d4b4d107157b9ba8144631451 

检查集群情况

redis-cli --cluster check 192.168.25.140:6381

博文参考

DockerPrinciple: 本项目主要介绍Docker的相关的原理与实践操作,同时涉及实践问题和解答方案。 - Gitee.com

关注
打赏
1688896170
查看更多评论

庄小焱

暂无认证

  • 4浏览

    0关注

    773博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.3029s