<p><p>在上一篇文章中,我们介绍了分布式存储的三种方式:hash取余分区、一致性哈希算法分区以及哈希槽分区。本篇,我们就来实战3主3从的哈希槽Redis集群搭建。</p><blockquote><p>大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~</p><p><br/></p></blockquote><p style="white-space: normal;"><br/></p><p style="white-space: normal;"><span style="font-size: 14px; font-family: 微软雅黑, sans-serif;"><span style="color: rgb(34, 34, 34); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; background-color: rgb(255, 255, 255);">下面这个公众号是凯哥开发的,福利号:外卖、买菜、电商领Q的</span></span></p><p style="white-space: normal;"><span style="font-size: 14px; font-family: 微软雅黑, sans-serif;"><span style="color: rgb(34, 34, 34); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; background-color: rgb(255, 255, 255);"><img src="http://img.kaigejava.com/kaigejava/images/67db93da54df097b6017fa.png" title=".png" alt="67db93da54df097b6017fa.png"/></span></span></p><p style="white-space: normal;"><strong><span style="font-size: 14px; font-family: 微软雅黑, sans-serif;"><span style="color: rgb(34, 34, 34); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; background-color: rgb(255, 255, 255);"><span style="font-family: Dialog; font-size: 14px; letter-spacing: 0.544px;">怎么领券?</span></span></span></strong></p><p style="white-space: normal;"><span style="font-size: 14px; font-family: 微软雅黑, sans-serif;"><span style="color: rgb(34, 34, 34); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; background-color: rgb(255, 255, 255);"><img src="http://img.kaigejava.com/kaigejava/images/f02b1847f3c94a44c2d6f0bcad.png" title=".png" alt="f02b1847f3c94a44c2d6f0bcad.png"/></span></span></p><p><br/></p><p>本次案例分为:三主三从Redis集群配置、主从容错切换迁移案例、主从扩容案例、主从缩容案例。如下图:</p><p><img src="http://img.kaigejava.com/kaigejava/images/42426e0d60edce94d9fc107f.png" title=".png" alt="42426e0d60edce94d9fc107f.png"/></p><p>本文主要内容:3主3从redis集群扩容缩容配置案例架构</p><p>步骤:</p><p>1:关闭防火墙及启动docker后台服务</p><p>2:新建6个docker容器实例</p><p>3:进入容器并为6台集群构建集群关系</p><p>4:查看集群状态</p><p><img src="http://img.kaigejava.com/kaigejava/images/066708a48892d7702e4cbccaf4131c8b.png" title=".png" alt="066708a48892d7702e4cbccaf4131c8b.png"/></p><p>命令:</p><p> <br/></p><p>命令解析:</p><p>docker run :创建并运行docker容器实例</p><p>--name xxx:给容器起个名字</p><p>--net host:使用宿主机的IP和端口。默认</p><p>-- privileged=true:获取宿主机root用户权限</p><p>-v /path:容器卷。</p><p>--cluster-enabled yes:开启Redis集群</p><p>-- appendonly yes :开启持久化</p><p><img src="http://img.kaigejava.com/kaigejava/images/123bed47465f44cba48396.png" title=".png" alt="123bed47465f44cba48396.png"/></p><p>需要六台。就复制6个。</p><p>进入容器内部后,构建主从关系。这里我们就进入node1中</p><p>命令:</p><p>构建主从命令公式:</p><p>redis-cli --cluster create ip:端口 ip:端口 ... --cluster-replicas 1</p><p>命令说明:</p><p>--cluster-replicas 1表示为每个master创建一个slave节点</p><p>ip:ip是宿主机的ip</p><p>端口:端口是每个redis的端口。</p><p>实战执行的命令:</p><p>注意修改成你们自己宿主机的ip<br/></p><p><img src="http://img.kaigejava.com/kaigejava/images/08702ddf10faf8caaa1de35027db249f.png" title=".png" alt="08702ddf10faf8caaa1de35027db249f.png"/></p><p>执行后,我们可以看到自动就三主三从了。</p><p>可以看到把16384个槽分成3个</p><p><img src="http://img.kaigejava.com/kaigejava/images/091b87093ae50ce55aab554a7.png" title=".png" alt="091b87093ae50ce55aab554a7.png"/></p><p>询问是否above configuratin?输入yes</p><p><img src="http://img.kaigejava.com/kaigejava/images/f58e83bb4be7aa1b78b35c62d7.png" title=".png" alt="f58e83bb4be7aa1b78b35c62d7.png"/></p><p>进入6381这台Redis容器中,查看集群状态</p><p>用到 cluster info / cluster nodes</p><p>先进入到6381这台Redis容器中,使用redis的cli端链接。命令:</p><p><img src="http://img.kaigejava.com/kaigejava/images/0dda30d92e42daaf9dd8090fad3f5acd.png" title=".png" alt="0dda30d92e42daaf9dd8090fad3f5acd.png"/></p><p>使用 cluster info命令查看</p><p><img src="http://img.kaigejava.com/kaigejava/images/0dba098b096ce87e7f7acfb5fe501e68.png" title=".png" alt="0dba098b096ce87e7f7acfb5fe501e68.png"/></p><p>使用 cluster nodes命令查看</p><p><img src="http://img.kaigejava.com/kaigejava/images/7a25d68860b19d79fd041e1f6dfc373f.png" title=".png" alt="7a25d68860b19d79fd041e1f6dfc373f.png"/></p><p>那么怎么从nodes信息知道哪个master挂哪个slave呢?</p><p><img src="http://img.kaigejava.com/kaigejava/images/c5cf823cc1fd6ad6a4761f04b5fd2e8b.png" title=".png" alt="c5cf823cc1fd6ad6a4761f04b5fd2e8b.png"/></p><p>从上图,我们可以看到:</p><p>16383这个master尾部字符串为:e00bdee.</p><p>16386这个slave对应尾部字符串也是:e00bdee</p><p>所以,我们就可以得到关系:master 83这台机器对应的从机器就是86了。</p><p>其他两组依次类推。</p><p>81==>84</p><p>82==>85</p><p>83==>86</p><p><span style="font-size:14px;font-family:'微软雅黑',sans-serif">搭建完成之后的Redis三主三从集群架构图如下:</span></p><p><span style="font-size:14px;font-family:'微软雅黑',sans-serif"><img src="http://img.kaigejava.com/kaigejava/images/b8bdb5edbfa8e1feaf64c1e9ad.png" title=".png" alt="b8bdb5edbfa8e1feaf64c1e9ad.png"/></span></p><p><span style="font-size:14px;font-family:'微软雅黑',sans-serif"></span></p><p style="white-space: normal;">如操作有问题欢迎去 我的 个人博客(www.kaigejava.com)留言或者 微信公众号(凯哥Java)留言交流哦。</p><p style="white-space: normal;"><span style="font-size: 14px; font-family: 微软雅黑, sans-serif;"></span></p><p style="white-space: normal;"><span style="color: rgb(18, 18, 18); font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif; font-size: 19.2px; font-weight: 700; white-space: pre-wrap; background-color: rgb(255, 255, 255);">本系列教程直通车</span></p><p style="white-space: normal;">直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:</p><p style="white-space: normal;">【图文教程】Windows11下安装Docker Desktop</p><p style="white-space: normal;">【填坑】在windows系统下安装Docker Desktop后迁移镜像位置</p><p style="white-space: normal;">【Docker学习系列】Docker学习1-docker安装</p><p style="white-space: normal;">【Docker学习系列】Docker学习2-docker设置镜像加速器</p><p style="white-space: normal;">【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?</p><p style="white-space: normal;">【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令</p><p style="white-space: normal;">【Docker学习系列】Docker学习系列3:常用命令之容器命令</p><p style="white-space: normal;">【Docker学习系列】Docker学习4-常用命令之重要的容器命令</p><p style="white-space: normal;">【Docker教程系列】Docker学习5-Docker镜像理解</p><p style="white-space: normal;">【Docker教程系列】Docker学习6-Docker镜像commit操作案例</p><p style="white-space: normal;">【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云</p><p style="white-space: normal;">【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?</p><p style="white-space: normal;">「Docker学习系列教程」9-Docker容器数据卷介绍</p><p style="white-space: normal;">「Docker学习系列教程」10-Docker容器数据卷案例</p><p style="white-space: normal;">Docker学习11-Docker常规方式安装软件</p><p style="white-space: normal;">「Docker学习系列教程」基础篇小总结及高级篇预告</p><p style="white-space: normal;">docker高级篇1-dockeran安装mysql主从复制</p><p style="white-space: normal;">docker高级篇2-分布式存储之三种算法</p><p style="white-space: normal;"><br/></p><p style="white-space: normal;">【Docker学习教程系列汇总】笔记及遇到问题解决文章</p><p><span style="font-size:14px;font-family:'微软雅黑',sans-serif"><br/></span><br/></p><p><br/></p>
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/8618.html