Redis-6.0.5 版本搭建集群

在开始集群搭建之前,默认认为你已经可以在本机虚拟机成功下载并运行过一个 Redis 单机节点。

如果还没有,请先下载并成功运行一个单机 Redis 节点,详细教程请点击这里


集群搭建:

首先,我们新建一个 cluster 文件夹:

[root@localhost ~]# mkdir cluster

然后我的文件目录如下:
在这里插入图片描述
将默认的 redis.conf 文件复制一份到该目录下,进行集群配置的修改:

[root@localhost cluster]# cp /root/redis-6.0.5/redis.conf ./redis.conf

复制过来如下图:
在这里插入图片描述
然后,修改 redis.conf 文件:

[root@localhost cluster]# vim ./redis.conf

依次找到以下属性,并修改为如下内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后保存。

:wq

下面,新建 6 个文件夹,以对应的端口号命名:

[root@localhost cluster]# mkdir 5001 5002 5003 5004 5005 5006

在这里插入图片描述
将修改过的 redis.conf 复制到 5001 目录下:

[root@localhost cluster]# cp redis.conf 5001/redis.conf

然后启动 5001 端口的 Redis :

[root@localhost cluster]# /root/redis-6.0.5/src/redis-server 5001/redis.conf 

查看是否启动:

[root@localhost cluster]# ps aux | grep redis

可以看到,5001 端口的 Redis 已经启动成功:
在这里插入图片描述
下面,依次将 redis.conf 文件复制到 5002 5003 5004 5005 5006 这几个目录下:

[root@localhost cluster]# cp redis.conf 5002/redis.conf
[root@localhost cluster]# cp redis.conf 5003/redis.conf
[root@localhost cluster]# cp redis.conf 5004/redis.conf
[root@localhost cluster]# cp redis.conf 5005/redis.conf
[root@localhost cluster]# cp redis.conf 5006/redis.conf

然后依次修改各节点目录下的 redis.conf 文件的端口:

[root@localhost cluster]# vim 5002/redis.conf

这里我们使用 批量修改命令,进入 redis.conf 文件后,输入如下命令:

:1,$s/5001/5002/g

然后回车,批量修改。
然后启动,如下图:
在这里插入图片描述


使用该方式依次修改 5003 5004 5005 5006 这四个节点的 配置文件,并依次启动

Redis 5 版本以后,也可以通过 redis-cli 命令来配置集群。

可以运行如下命令,来 查看配置集群的参数设置:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli --cluster help

可以看到常用的参数如下:
在这里插入图片描述
这里,我们创建集群:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli --cluster create 127.0.0.1:5001 127.0.0.1:5002 127.0.0.1:5003 127.0.0.1:5004 127.0.0.1:5005 127.0.0.1:5006 --cluster-replicas 1

上面命令中, create 后跟着集群各节点的 IP + 端口号 ,以空格隔开,–cluster-replicas 1 表示:集群中主从节点按照每个主节点配置一个从节点来设置。

然后会提示如下内容:
在这里插入图片描述
输入 yes 即可。

提示如下,即集群配置成功:
在这里插入图片描述
然后进入到其中一个节点,这里我进入 5001 节点:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli -c -h 127.0.0.1 -p 5001
127.0.0.1:5001> set number 1000

可以看到打印出如下内容:
在这里插入图片描述
这是因为,key 为 number 被分配存储到了 5002 这个节点的 7743 的数据槽上。则表示集群搭建成功。
查看集群列表的命令如下:

127.0.0.1:5002> cluster nodes

在这里插入图片描述
从上图中可以看出,5001 5002 5003 这三个节点分别被设置为了 master 节点,对应的数据槽分别是:1-5460,5461-10922,10923-16383;5004 5005 5006 三个节点被设置为从节点。

新增节点:

新增主节点

新增主节点的步骤分为两步:

  1. 新增节点到集群中
  2. 给节点分配数据槽

新增节点到集群中

下面新增一主一从两个节点到集群中,

首先,新建两个文件夹: 5007 5008 ,并复制两份 redis.conf 文件到这两个目录下:

[root@localhost cluster]# mkdir 5007 5008
[root@localhost cluster]# cp 5001/redis.conf 5007/redis.conf
[root@localhost cluster]# cp 5001/redis.conf 5008/redis.conf

然后依次修改 5007 5008 下 redis.conf 文件的 对应配置,与搭建集群时,修改 5002 5003 5004 5005 5006 这几个目录下 redis.conf 的步骤相同。

[root@localhost cluster]# vim 5007/redis.conf 
[root@localhost cluster]# vim 5008/redis.conf

然后启动节点:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-server 5007/redis.conf 

然后,运行如下命令:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli --cluster add-node 127.0.0.1:5007 127.0.0.1:5001

add-node 参数后跟 新节点 IP + 端口,已知集群中某一节点的 IP + 端口。
打印如下内容:
在这里插入图片描述
然后查看集群中的节点信息:
在这里插入图片描述
可以看到,5007 节点已被添加到集群中,角色为 master 节点,只是与其他 master 节点不同的是,它还没有被分配数据槽,所以,他虽然被配置到集群中,但此时他不会被用于存取数据。


给节点分配数据槽

下面来为 5007 节点分配数据槽:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli --cluster reshard 127.0.0.1:5007

reshard 参数表示为某一结点重新分片,后跟 节点 IP + 端口,这里我们为 5007 节点重新分片。

然后会看到提示如下内容:
在这里插入图片描述

// 你打算移动多少数据槽?取值范围为: 1 - 16384
How many slots do you want to move (from 1 to 16384)? 

这里我们打算用四个主节点,则平均每个节点分配 4096 个数据槽。所以,这里我们输入 4096。

然后会提示如下内容:
在这里插入图片描述

// 接收节点 ID 是多少? 这里我们输入 5007 节点的 ID
What is the receiving node ID? 

然后提示如下内容:
在这里插入图片描述

	// 将集群中所有现有数据槽的节点作为数据槽分配的源节点,则输入 all 即可
  Type 'all' to use all the nodes as source nodes for the hash slots.
  	// 仅从部分源节点分配数据槽,则只需输入分配的源节点 ID ,输入完后,回车输入 done 即可
  Type 'done' once you entered all the source nodes IDs.
  // 源节点
Source node #1: 

这里我们从所有节点中平均分配,输入 all 即可。
然后会打印如下内容:在这里插入图片描述

// 是否执行建议的分片计划
Do you want to proceed with the proposed reshard plan (yes/no)? 

我们输入 yes.

片刻之后,看到如下内容,则表示重新分片成功:
在这里插入图片描述
然后我们连接集群中任意节点,执行 cluster nodes 命令,即可看到如下内容:
在这里插入图片描述
可以看到,5007 节点已经拥有 0-1364 5461-6826 10923-12287 之间的数据槽了。

主节点的新增到这里就完成了,下面来看从节点的新增。


新增从节点:

新增从从节点也分为两步:

  1. 新增节点到集群中
  2. 为当前节点设置主节点

新增节点到集群中

首先启动 5008 节点的 Redis:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-server 5008/redis.conf 

然后,将 5008 节点添加到集群中:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli --cluster add-node 127.0.0.1:5008 127.0.0.1:5007

打印如下内容,添加成功:
在这里插入图片描述
进入 5008 节点的 Redis 客户端,查看一下 集群信息:
在这里插入图片描述


为当前节点设置主节点

可以看到,5008 已被添加到集群中,并且角色是 master 节点,没有数据槽。然后执行如下命令,将其作为 5007 节点的 从节点:

127.0.0.1:5008> cluster replicate cfc56e9ec97da80f4b22dec10c9757094924a55d

replicate 后跟 主节点 ID,意为:将当前节点分配给某节点作为从节点。这里我们设置的是 5007 节点的 ID。

然后查看节点信息:
在这里插入图片描述
可以看到 5008 节点已经降为 slave 角色,其主节点处的 ID 对应的是 5007 节点的 ID。

从节点添加完成。


删除节点

删除从节点

删除从节点只需执行一条命令:

[root@localhost cluster]#  /root/redis-6.0.5/src/redis-cli --cluster del-node 127.0.0.1:5008 63ebff3c0958cc314f68c5b01933bc4d9947ca53

del-node 参数后跟 从节点 IP + 端口号,再加 从节点的 ID

然后进入 5001 节点,执行 cluster nodes 命令,可以看到,5008 节点已被移出集群
在这里插入图片描述
从节点删除成功


删除主节点

删除主节点分为两步:

  1. 删除主节点的数据槽
  2. 删除节点

删除主节点数据槽

执行重新分片命令,将 5007 节点的 数据槽 分给其他节点:

[root@localhost cluster]#  /root/redis-6.0.5/src/redis-cli --cluster reshard 127.0.0.1:5007

提示如下内容:
在这里插入图片描述
5007 节点我们分配了 4096 个数据槽,所以,这里我们输入 4096。
在这里插入图片描述
接收节点是哪个:这里我们将接收节点设置为 5001 节点,输入 5001 节点的 ID。

然后提示如下:
在这里插入图片描述
源节点为哪个? 这里我们要从 5007 节点的数据槽移给 5001 节点,所以,源节点是 5007 ,输入 5007 的 ID;然后回车,输入 done;如下图:
在这里插入图片描述
然后提示是否接受该计划:
在这里插入图片描述
输入 yes ,回车

执行成功,如下图:
在这里插入图片描述
然后查看集群信息:

在这里插入图片描述
可以看到:5007 节点的数据槽已被全部移除。现在可以删除 5007 节点了 ,命令与删除从节点的命令一样:

[root@localhost cluster]# /root/redis-6.0.5/src/redis-cli --cluster del-node 127.0.0.1:5007 cfc56e9ec97da80f4b22dec10c9757094924a55d

进入集群查看一下是否删除成功:
在这里插入图片描述
可以看到 5007 节点已经被删除。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值