Skip to content

Latest commit

 

History

History
16 lines (8 loc) · 1.25 KB

shen-suo-yuan-li.md

File metadata and controls

16 lines (8 loc) · 1.25 KB

伸缩原理

Redis集群提供了灵活的节点扩容和收缩方案。在不影响群对外服务 的情况下,可以为集群添加节点进行扩容也可以下线部分节点进行缩容,如图所示。

从图可以看出,Redis集群可以实现对节点的灵活上下线控制。其中原理可抽象为槽和对应数据在不同节点之间灵活移动。首先来看我们之前搭建的集群槽和数据与节点的对应关系,如图所示。

三个主节点分别维护自己负责的槽和对应的数据,如果希望加入1个节点实现集群扩容时,需要通过相关命令把一部分槽和数据迁移给新节点,如图所示。

图中每个节点把一部分槽和数据迁移到新的节点6385,每个节点负责的 槽和数据相比之前变少了从而达到了集群扩容的目的。这里我们故意忽略了 槽和数据在节点之间迁移的细节,目的是想让读者重点关注在上层槽和节点 分配上来,理解集群的水平伸缩的上层原理:集群伸缩=槽和数据在节点之 间的移动,下面将介绍集群扩容和收缩的细节。