docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置
在上一篇文章中,我们介绍了分布式存储的三种方式:hash取余分区、一致性哈希算法分区以及哈希槽分区。本篇,我们就来实战3主3从的哈希槽Redis集群搭建。
本次案例分为:三主三从Redis集群配置、主从容错切换迁移案例、主从扩容案例、主从缩容案例。如下图:
本文主要内容:3主3从redis集群扩容缩容配置案例架构
3主3从redis集群配置
步骤:
1:关闭防火墙及启动docker后台服务
2:新建6个docker容器实例
3:进入容器并为6台集群构建集群关系
4:查看集群状态
1:创建6个Redis的容器实例
命令:
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-nod-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
命令解析:
docker run :创建并运行docker容器实例
--name xxx:给容器起个名字
--net host:使用宿主机的IP和端口。默认
-- privileged=true:获取宿主机root用户权限
-v /path:容器卷。
--cluster-enabled yes:开启Redis集群
-- appendonly yes :开启持久化
需要六台。就复制6个。
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-nod-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-nod-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-nod-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-nod-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-nod-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-nod-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
2:构建主从关系
进入容器内部后,构建主从关系。这里我们就进入node1中
命令:
docker exec -it redis-node-1 /bin/bash
构建主从命令公式:
redis-cli --cluster create ip:端口 ip:端口 ... --cluster-replicas 1
命令说明:
--cluster-replicas 1表示为每个master创建一个slave节点
ip:ip是宿主机的ip
端口:端口是每个redis的端口。
实战执行的命令:
redis-cli --cluster create 192.168.50.128:6381 192.168.50.128:6382 192.168.50.128:6383 192.168.50.128:6384 192.168.50.128:6385 192.168.50.128:6386 --cluster-replicas 1
注意修改成你们自己宿主机的ip
执行后,我们可以看到自动就三主三从了。
可以看到把16384个槽分成3个
询问是否above configuratin?输入yes
3:查看集群状态
进入6381这台Redis容器中,查看集群状态
用到 cluster info / cluster nodes
先进入到6381这台Redis容器中,使用redis的cli端链接。命令:
docker exec -it 41c16958a597 /bin/bash
redis-cli -p 6381
使用 cluster info命令查看
使用 cluster nodes命令查看
那么怎么从nodes信息知道哪个master挂哪个slave呢?
从上图,我们可以看到:
16383这个master尾部字符串为:e00bdee.
16386这个slave对应尾部字符串也是:e00bdee
所以,我们就可以得到关系:master 83这台机器对应的从机器就是86了。
其他两组依次类推。
81==>84
82==>85
83==>86
架构图为:
搭建完成之后的Redis三主三从集群架构图如下:
结束语
如操作有问题欢迎去 我的 个人博客(www.kaigejava.com)留言或者 微信公众号(凯哥Java)留言交流哦。
本系列教程直通车
直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:
【图文教程】Windows11下安装Docker Desktop
【填坑】在windows系统下安装Docker Desktop后迁移镜像位置
【Docker学习系列】Docker学习1-docker安装
【Docker学习系列】Docker学习2-docker设置镜像加速器
【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?
【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令
【Docker学习系列】Docker学习系列3:常用命令之容器命令
【Docker学习系列】Docker学习4-常用命令之重要的容器命令
【Docker教程系列】Docker学习5-Docker镜像理解
【Docker教程系列】Docker学习6-Docker镜像commit操作案例
【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云
【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?
「Docker学习系列教程」10-Docker容器数据卷案例
相关文章
- docker安装redis集群--分布式存储案例
- docker安装Redis_docker redis配置文件路径
- 基于 Redis 实现的高性能项目(redis项目案例)
- 快速简单:使用Redis写入数据(redis写入数据)
- 使用Docker安装Redis并配置成功(docker安装redis)
- 设置Redis超时时间的最佳实践(redis超时时间设置)
- 案例Redis实现成功,改变行业格局(自己写个redis成功)
- 精通Redis编程笔记必备(编程笔记redis)
- 电脑与Redis涉外一个突破性案例分析(电脑给redis涉外例)
- 中标麒麟,Redis为公司注入新动力(中标麒麟 redis)
- 内存不足引发的Redis性能下降(内存不够对redis影响)
- 利用Redis搭建高效稳定项目实践(使用redis的项目案例)
- 使用Redis实现高并发处理一个实际案例(redis高并发处理例子)
- 如何熟练使用Redis一个实战案例演示(redis项目实战案例)
- 实施Redis集群一个实践案例(redis集群项目实例)
- Redis集群的雪崩问题解决方案(redis集群 雪崩)
- Redis集群优化内存使用方式实现增长(redis集群内存增长)
- Redis问题解决一个案例研究(redis问题案例)
- 简单实用Redis连接池案例分享(redis连接池案例)
- 记录 Redis 过期时间戳的(redis 过期时间戳)
- Redis读写分离从案例中学习运用(redis读写分离案例)
- 红色计数精准掌握Redis实战案例分享(redis计数案例)
- Redis案例实战从入门到精通(redis案例详解)