redis的五种数据类型 (Redis - Cluster集群收缩主从节点的方法)

文章编号:7926 更新时间:2024-02-16 分类:互联网资讯 阅读次数:

资讯内容

Cluster集群收缩主从节点的方法”文章吧。Cluster集群收缩概念当名目压力承载力过高时,须要参与节点来提高负载,当名目压力不是很大时,也宿愿能够将集群收缩上去,给其余名目经常使用,这就要用到集群收缩了集群收缩的源端就是要下线的主节点,指标端就是在线的主节点(调配给谁的节点)。集群收缩操作步骤:目前集群时四主四从共8个节点,我们须要将集群改为三主三从,收缩出两个节点给其余程序经常使用。

这篇“redis cluster集群收缩主从节点的方法”文章的常识点大局部人都不太了解,所以小编给大家总结了以下内容,内容具体,步骤明晰,具备必定的自创价值,宿愿大家阅读完这篇文章能有所收获,上方我们一同来看看这篇“redis cluster集群收缩主从节点的方法”文章吧。

1.Cluster集群收缩概念

当名目压力承载力过高时,须要参与节点来提高负载,当名目压力不是很大时,也宿愿能够将集群收缩上去,给其余名目经常使用,这就要用到集群收缩了

集群收缩操作和集群扩容是一样的,只要要把方向反上来即可。

扩容的时刻口头一次性命令就可以成功槽位迁徙成功,而收缩的时刻有几个主节点就须要口头多少次,比如除去要下线的节点,还有3个主节点,那么就须要口头三次,填写迁徙出槽位的数量也须要除以3,每个节点也须要平均调配。

收缩的时刻首先要填写分出多少个槽位,而后填写要分给谁,最后填写从哪分出槽位,普通分多少个槽位,就须要看要下线的主机上有多少个槽位,而后除以集群主节点数,使每一个主机点分到的槽位都是相反的,填写要调配给谁的时刻,第一次性填写第一个主节点的ID,第二次填写第二个主节点的ID,最后填写提供槽位的节点ID,就是下线节点的ID号。

集群收缩扩容槽位的时刻不会影响数据的经常使用。

集群收缩的源端就是要下线的主节点,指标端就是在线的主节点(调配给谁的节点)。

我们要分明一点,只要主节点是有槽位的,因此呢须要将主节点的槽位调配给其余主节点,当槽位清空后,这个主机节点就可以下线了。

收缩集群前后对比图

集群收缩操作步骤:

1.口头reshard命令将须要下线的主节点启动槽位扩散。

2.有几个主节点就须要口头几次reshard命令,首先填写要分出的槽位数,而后填写分给谁,最后填写从哪里分。

3.当槽位扩散成功后,要下线的主节点没有任何数据时,将节点从集群中删除。

集群信息

目前集群时四主四从共8个节点,我们须要将集群改为三主三从,收缩出两个节点给其余程序经常使用。

2.将6390主节点从集群中收缩2.1.计算须要分给每一个节点的槽位数

可以看到6390节点上有4096个槽位,删除要下线的6390节点后,我们还有3个主节点,4096除3失掉1365,调配槽位的时刻给每个节点调配1365个槽位即可平均。

2.2.调配1365个槽位给192.168.81.210的6380节点

我们须要将192.168.81.240的6390节点分出1365个槽位给192.168.81.210的6380节点。

只要要把What is the receiving node ID填写成192.168.81.210的6380节点ID即可,指的是调配进去的槽位要给谁。

而后source node填写192.168.81.240的6390节点的ID,这里指的是从哪个节点上分出1365个槽位,填写ID后,回车后会揭示还要从哪个节点上调配槽位,由于只要6390须要分出槽位,所以在这里填写done,示意只要这个一个节点分出1365个槽位给其余节点。

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1365				#调配出多少个槽位
What is the receiving node ID? 80e256579658eb256c5b710a3f82c439665794ba				#将槽位分给那个节点
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#从哪个节点分出槽位
Source node #2:done
Do you want to proceed with the proposed reshard plan (yes/no)? yes			#输入yes继续

上方是收缩节点的环节截图。

数据迁徙环节。

槽位分出迁徙成功。

2.3.调配1365个槽位给192.168.81.220的6380节点

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1365				#调配出多少个槽位
What is the receiving node ID? 10dc7f3f9a753140a8494adbbe5a13d0026451a1				#将槽位分给那个节点
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#从哪个节点分出槽位
Source node #2:done
Do you want to proceed with the proposed reshard plan (yes/no)? yes			#输入yes继续

收缩环节截图展现。

2.4.调配1365个槽位给192.168.81.230的6380节点

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1366				#调配出多少个槽位
What is the receiving node ID? a4381138fdc142f18881b7b6ca8ae5b0d02a3228				#将槽位分给那个节点
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#从哪个节点分出槽位
Source node #2:done
Do you want to proceed with the proposed reshard plan (yes/no)? yes			#输入yes继续

收缩环节截图展现。

当最后一个节点迁徙完数据后,6390主节点槽位数变为0。

2.5.检查以后集群槽位调配

槽位及数据曾经从6390行将下线的主机迁徙终了,可以看下以后集群三个主节点的槽位数。

可以十分分明的看到,如今每个主节点的槽位数为5461。

假设感觉槽位从新调配后顺序不太满意,那么在口头一下reshard,把其它节点的槽位都分给192.168.81.210的6380上,这样一来,210的6380领有的槽位就是0-16383,而后在将210的槽位一个节点分给5461个,分完之后,各节点的顺序就分歧了。

3.验证数据迁徙环节能否造成数据意外

多开几个窗口,一个口头数据槽位迁徙,一个始终创立key,一个检查key的创立进展,一个检查key的数据。

继续测试,发现没有任何数据意外,所有显示ok。

4.将下线的主节点从集群中删除4.1.删除节点

经常使用redis-trib删除一个节点,假设这个节点存在复制相关,有节点在复制以后节点或许以后节点复制别的节点的数据,redis-trib会智能处置复制相关,而后将节点删除,节点删除后会把对应的进程也中止运转。

删除节点之前必定确保该节点没有任何槽位和数据,否则会删除失败

命令:./redis-trib.rb del-node 节点IP:端口 ID

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.240:6390 6bee155f136f40e28e1f60c8ddec3b158cd8f8e8
>>> Removing node 6bee155f136f40e28e1f60c8ddec3b158cd8f8e8 from cluster 192.168.81.240:6390
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.240:6391 f6b9320dfbc929ad5a31cdb149360b0fd8de2e60
>>> Removing node f6b9320dfbc929ad5a31cdb149360b0fd8de2e60 from cluster 192.168.81.240:6391
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

4.2.调整主从交叉复制

删掉192.168.81.240主机上的两个redis节点后,192.168.81.210主机上的6380就没有了复制相关,我们须要把192.168.81.230的6381节点复制192.168.81.210的6380节点。

[root@redis-1 ~]# redis-cli -h 192.168.81.230 -p 6381
192.168.81.230:6381> CLUSTER REPLICATE 80e256579658eb256c5b710a3f82c439665794ba
OK

4.3.当节点存在数据不可删除

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.220:6380 10dc7f3f9a753140a8494adbbe5a13d0026451a1
>>> Removing node 10dc7f3f9a753140a8494adbbe5a13d0026451a1 from cluster 192.168.81.220:6380
[ERR] Node 192.168.81.220:6380 is not empty! Reshard>192.168.81.240:6390> CLUSTER reset
OK

以上就是对于“Redis Cluster集群收缩主从节点的方法”这篇文章的内容,置信大家都有了必定的了解,宿愿小编分享的内容对大家有协助,若想了解更多相关的常识内容,请关注云主机网(yuntue.com)行业新闻频道。

介绍阅读:

redis clusterredis cluster集群的文章 redis的五种数据类型RedisClu

给这篇文章的作者打赏

微信扫一扫打赏支付宝扫一扫打赏 标签: cluster集群clusterredisredis

本文地址: https://yihaiquanyi.com/article/64ecbb3b6eb9a042b9db.html

上一篇:华为路由器检测不到入户网线华为路由器检查...
下一篇:的期间经常使用SQLServer精准取得明日的期...

发表评论