快上网建站品牌

13518219792
  • 首页
  • 关于我们
    • 如何选择
    • 选择理由
  • 案例作品
    • 网站建设
    • 优化推广
    • 微信开发
    • 电商托管
  • 服务项目
    • 网站建设
    • 移动端/APP
    • 微信/小程序
    • 技术支持
    • 其它服务
  • 建站知识
    • 成都网站建设
    • 成都做网站
    • 成都网站设计
  • 网站售后
    • 成都网站运营
    • 成都网站维护
    • 成都网站推广
  • 客服中心
  • 全国分站

基于Docker搭建Redis主从集群的实现

目录

创新互联建站主营白山网站建设的网络公司,主营网站建设方案,app开发定制,白山h5小程序设计搭建,白山网站营销推广欢迎白山等地区企业咨询

最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得一定是之前写的这篇 文章有问题了,所以我花了几分钟浏览之前的文章总结了下面几个问题:

redis 数量太少,只创建了 3 个实例;由于只有 3 个实例,所以全部只能是主节点,无法体现集群主从关系;如何搭建主从集群?如何分配从节点?

基于之前的文章,我想快速的过一下这几个问题,本文基于 Docker + Redis 5.0.5 版本,通过 cluster 方式创建一个 6 个 redis 实例的主从集群,当然文章会指出相应的参数说明,这样即便是创建 9 个实例的集群方式也是一样的。

1、拉取 Redis 镜像

基于 Redis:5.0.5 版本,执行如下指令:

docker pull redis:5.0.52、创建 6 个 Redis 容器

创建 6 个Redis 容器:

redis-node1:6379 redis-node2:6380 redis-node3:6381 redis-node4:6382 redis-node5:6383 redis-node6:6384

执行命令如下:

docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381docker create --name redis-node4 --net host -v /data/redis-data/node4:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382docker create --name redis-node5 --net host -v /data/redis-data/node5:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383docker create --name redis-node6 --net host -v /data/redis-data/node6:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384

部分参数解释:

--cluster-enabled:是否启动集群,选值:yes 、no --cluster-config-file 配置文件.conf :指定节点信息,自动生成 --cluster-node-timeout 毫秒值: 配置节点连接超时时间 --appendonly:是否开启持久化,选值:yes、no

执行命令截图:

3、启动 Redis 容器

执行命令如下:

docker start redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 redis-node6

启动截图如下:

4、组建 Redis 集群

进入任意一个 Redis 实例:

# 这里以 redis-node1 实例为例docker exec -it redis-node1 /bin/bash

执行组件集群的命令:

# 组建集群,10.211.55.4为当前物理机的ip地址redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 10.211.55.4:6383 10.211.55.4:6384 --cluster-replicas 1

执行命令截图如下:

创建成功后,通过 redis-cli 查看一下集群节点信息:

root@CentOS7:/data# redis-cli127.0.0.1:6379> cluster nodes

执行命令截图如下:

5、关于Redis集群搭建

我们再回到创建集群的命令上:

redis-cli --cluster create 10.211.55.4:6379~6384 --cluster-replicas 1大家着重看这个参数

--cluster-replicas 1,参数后面的数字表示的是主从比例,比如这里的 1 表示的是主从比例是 1:1,什么概念呢?

也就是 1 个主节点对应几个从节点,现有 6 个实例,所以主从分配就是 3 个 master 主节点,3 个 slave 从节点。

主节点最少3个,3个才能保证集群的健壮性。如果

--cluster-replicas 2 呢?

那么主从比例就是 1:2,也就是 1 个主节点对于应 2 个从节点。

即:3(master) + 6(slave) = 9个 Redis 实例。

如果不足 9个 Redis 实例,但是参数指定为 2 会怎么样?

报错信息如下:

提示已经很清楚了,Redis集群至少需要3个主节点。那么从节点就需要有6个,所以最后说:至少需要9个节点。

好的,至少3个主节点的要求我不继续刚了,但是我想4个主节点,2个从节点,这总该可以了吧?

4个主节点满足你:

# 进入一个启动的 reids 实例,这里以 redis-node1 实例为例docker exec -it redis-node1 /bin/bash

执行组建集群的命令:

redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 --cluster-replicas 0

指定4个没有从节点的主节点,这样你就有4个主节点了:

剩下的两个从节点怎么办呢?手动添加。

怎么添加?手动添加!

看到这些 master 节点的 id 了吗,只需要把 slave 指定给他们就可以了。

继续执行如下命令:

redis-cli --cluster add-node 10.211.55.4:6383 10.211.55.4:6379 --cluster-slave --cluster-master-id b0c32b1dae9e7b7f7f4b74354c59bdfcaa46f30aredis-cli --cluster add-node 10.211.55.4:6384 10.211.55.4:6379 --cluster-slave --cluster-master-id 111de8bed5772585cef5280c4b5225ecb15a582e

将两个 Redis 实例塞给其他主节点了:

最后我们进入 redis-cli,通过 cluster nodes 查看一下节点信息:

到此这篇关于基于Docker搭建Redis主从集群的实现的文章就介绍到这了,更多相关Docker Redis主从集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


网站名称:基于Docker搭建Redis主从集群的实现
文章位置:http://www.csdahua.cn/article/sopgd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

其他资讯

  • Java中如何实现消息队列任务的平滑关闭
  • PHP的命名空间是什么
  • 修复HDMI端口在Windows10PC上无法正常工作怎么办
  • TranslatiumforMac(mac翻译软件)13.4免激活版
  • 如何实现WCF回调

行业动态

企业网站建设的重要性!

现在虽然是移动互联网时代,但企业网站依然重要,包含PC站点,移动站。可以说企业网站关系企业的未来发展和前途,尤其对中小企业更是如此,一些中小企业老板,对自己的名片很在乎,因为这是个门面。...

服务项目

  • 网站建设

    查看详情
  • 移动端/APP

    查看详情
  • 微信/小程序

    查看详情
  • 技术支持

    查看详情
  • 其它服务

    查看详情
  • 更多服务项目

    用我们的专业和诚信赢得您的信赖,从PC到移动互联网均有您想要的服务!

    获取更多

联系吧 在百度地图上找到我们

电话:13518219792

如遇占线或暂未接听请拨:136xxx98888

业务咨询 技术咨询 售后服务
网站制作
成都网站制作
成都网站制作
盐亭网站制作公司
手机网站制作
网站建设
双流网站建设
成都网站建设公司
成都免费网站建设
成都定制网站建设
网站设计
温江网站设计
成都网站设计公司
成都网站设计
网站设计制作
联系我们
电话:13518219792
邮箱:631063699@qq.com
地址:成都青羊区锦天国际1002号
网址:www.csdahua.cn

微信二维码

  • 友情链接
  • 成都网站维护公司
  • 南充服务器托管
  • 成都租用玉柴发电机
  • 亚克力背部发光字
  • 成都电信服务器托管
  • 软文发稿
  • 成都建站
  • 成都托管服务器
  • jxjierui.cn
  • 微信小程序公众号开发

Copyright © 2002-2023 www.csdahua.cn 快上网建站品牌 QQ:244261566 版权所有 备案号:蜀ICP备19037934号

  • 在线咨询
  • 13518219792
  • 微信二维码

  • 移动版官网