redis集群的水平扩张与缩减


前言:本文是承接了笔者之前写的redis集群搭建模式的基础上进行的拓展,如果是零基础的同学,请从前文开始看起~

一、redis集群的水平扩张

水平扩张就是给原本的redis集群添加新的主从节点,让更多的redis节点来分担任务,下面是具体的操作步骤:

1、启动新增的节点

新增节点的启动和前文的启动方式别无二致,使用如下指令
/usr/local/opt/redis/bin/redis-server /usr/local/etc/cluster/redis-8007.conf

启动成功后如下图:8007、8008都是新启动的两个节点,且未加入集群中
在这里插入图片描述

2、将游离节点加入集群

redis中提供了一个特殊的指令来添加新的节点:
/usr/local/opt/redis/bin/redis-cli -a 123456 --cluster add-node 127.0.0.1:8007 127.0.0.1:8001

  • -a:当前节点所配置的密码
  • --cluster add-node:添加节点所用到的特殊指令
  • 第一个IP:这个IP是需要加入的节点IP和端口
  • 第二个IP:这个IP可以是集群中任意存活节点的IP加端口

启动成功后如下图:
在这里插入图片描述

此时加入的节点默认是主节点,并且没有任何槽位,也就是说无法缓存数据,如下图:
在这里插入图片描述

3、给新加入的节点分配槽位

给新节点分配槽位,其实就是从原有的主节点中分出一部分槽位给新加入的节点,总的槽位数量仍旧不变—16384。指令如下:
/usr/local/opt/redis/bin/redis-cli -a 123456 --cluster reshard 127.0.0.1:8007

指令启动后,会有几个询问环节:

1、询问需要转移多少个槽位(600)
在这里插入图片描述
2、询问接收槽位的节点ID(就是新增的节点ID)
在这里插入图片描述
3、询问分配节点的方式(all)
在这里插入图片描述
这里需要注意一下,有两种分配方式:

  • all:表示从现有主节点中随机抽取指定数目的槽位,比如600个槽位,可能8001主节点取100,8002主节点取200,8003主节点取300,这个数量是不确定的;
  • done:这种模式的输入方式有所不同,需要先输入节点ID,然后再输入done这个关键字。它表示从该节点中取出指定数目的槽位转移给2步骤设置的接收节点。一般都是删除节点的时候用到该种模式;

4、询问是否接受执行计划(yes)
在这里插入图片描述

完成上述几个步骤后节点就迁移完成了,如下图:
在这里插入图片描述
进行到此处其实就已经完成了集群的水平扩容,不过光秃秃的一个主节点还是有点突兀,所以后面又给加上了从节点

4、给新增的主节点添加从节点

1、将游离的节点加入集群,这个同步骤2;
在这里插入图片描述
2、进入当前节点,将改节点挂入主节点下方,输入如下指令:
cluster replicate 节点ID
在这里插入图片描述

加入成功后如下图
在这里插入图片描述

二、redis集群的缩减

缩减与扩张是完全相反的一个动作,可以看作是扩张的逆向操作,具体的步骤如下:

1、从节点的删除

由于从节点并没有槽位信息的配置,所以可以用指令直接删除
/usr/local/opt/redis/bin/redis-cli -a 123456 --cluster del-node 127.0.0.1:8008 节点ID

  • -a:当前节点所设置的访问密码
  • --cluster del-node:删除节点所用的特殊指令
  • ip:需要删除的节点IP加端口地址
  • 节点ID:需要删除的节点ID

删除成功后如下图
在这里插入图片描述

2、主节点的删除

主节点的删除需要区分两个步骤:

1、转移要删主节点的全部槽位数据信息(如果未转移会提示无法删除),指令如下:
/usr/local/opt/redis/bin/redis-cli -a 123456 --cluster reshard 127.0.0.1:8007
该指令的步骤同 一.3,只有部分环节不同

  • 询问转移数量的环节:600(删除节点所持有的槽位数量)
  • 询问接收槽位的环节:选择除删除主节点外的任意主节点ID
  • 询问转移方式的环节:选择done(从所删除节点转移所有槽位)
    在这里插入图片描述

迁移完成后的结果如下:
在这里插入图片描述

2、完成第一步后,使用删除指令从集群中移除主节点即可,指令同从节点的删除指令:
/usr/local/opt/redis/bin/redis-cli -a 123456 --cluster del-node 127.0.0.1:8007 节点ID

删除后的结果图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘丶沐逸尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值