前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置

docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置

原创
作者头像
凯哥Java
发布2022-12-19 13:49:42
6380
发布2022-12-19 13:49:42
举报
文章被收录于专栏:凯哥Java

在上一篇文章中,我们介绍了分布式存储的三种方式:hash取余分区、一致性哈希算法分区以及哈希槽分区。本篇,我们就来实战3主3从的哈希槽Redis集群搭建。

本次案例分为:三主三从Redis集群配置、主从容错切换迁移案例、主从扩容案例、主从缩容案例。如下图:

截图.png
截图.png

本文主要内容:3主3从redis集群扩容缩容配置案例架构

3主3从redis集群配置

步骤:

1:关闭防火墙及启动docker后台服务

2:新建6个docker容器实例

3:进入容器并为6台集群构建集群关系

4:查看集群状态

clipboard.png
clipboard.png

1:创建6个Redis的容器实例

命令:

代码语言:javascript
复制
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 :开启持久化

clipboard.png
clipboard.png

需要六台。就复制6个。

代码语言:javascript
复制
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的端口。

实战执行的命令:

代码语言:javascript
复制
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

clipboard.png
clipboard.png

执行后,我们可以看到自动就三主三从了。

可以看到把16384个槽分成3个

clipboard.png
clipboard.png

询问是否above configuratin?输入yes

clipboard.png
clipboard.png

3:查看集群状态

进入6381这台Redis容器中,查看集群状态

用到 cluster info / cluster nodes

先进入到6381这台Redis容器中,使用redis的cli端链接。命令:

代码语言:javascript
复制
docker exec -it 41c16958a597 /bin/bash
redis-cli -p 6381

clipboard.png
clipboard.png

使用 cluster info命令查看

clipboard.png
clipboard.png

使用 cluster nodes命令查看

clipboard.png
clipboard.png

那么怎么从nodes信息知道哪个master挂哪个slave呢?

clipboard.png
clipboard.png

从上图,我们可以看到:

16383这个master尾部字符串为:e00bdee.

16386这个slave对应尾部字符串也是:e00bdee

所以,我们就可以得到关系:master 83这台机器对应的从机器就是86了。

其他两组依次类推。

81==>84

82==>85

83==>86

架构图为:

搭建完成之后的Redis三主三从集群架构图如下:

clipboard.png
clipboard.png

结束语

如操作有问题欢迎去 我的 个人博客(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学习系列教程」9-Docker容器数据卷介绍

「Docker学习系列教程」10-Docker容器数据卷案例

Docker学习11-Docker常规方式安装软件

「Docker学习系列教程」基础篇小总结及高级篇预告

docker高级篇1-dockeran安装mysql主从复制

docker高级篇2-分布式存储之三种算法

【Docker学习教程系列汇总】笔记及遇到问题解决文章

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结束语
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档