摘要
如果海量数据的存储采用的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