欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2023-03-24 21:42:28
最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得一定是之前写的这篇 《基于docker的redis集群搭建》 文章有问题了,所以我花了几分钟浏览之前的文章总结了下面几个问题:re...

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

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

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

1、拉取 redis 镜像

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

2、创建 6 个 redis 容器

创建 6 个redis 容器:

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

执行命令如下:

部分参数解释:

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

执行命令截图:

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

3、启动 redis 容器

执行命令如下:

启动截图如下:

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

4、组建 redis 集群

进入任意一个 redis 实例:

执行组件集群的命令:

执行命令截图如下:

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

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

执行命令截图如下:

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

5、关于redis集群搭建

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

大家着重看这个参数 --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 会怎么样?

报错信息如下:

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

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

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

4个主节点满足你:

执行组建集群的命令:

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

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

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

怎么添加?手动添加!

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

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

继续执行如下命令:

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

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

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

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

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