您的当前位置:首页正文

Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩

2024-11-28 来源:个人技术集锦

Redis Cluster 集群伸缩

1. 伸缩原理

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

我们在这篇文章中搭建了一个三主三从Redis集群(如下图所示)。在这篇博客中根据源码详细剖析了搭建集群的流程。

本篇博客要讲的是,Redis集群的扩容和缩容过程。

我们先根据将如图的集群搭建起来,查看搭建的效果。

127.0.0.1:6379> cluster nodes
29978c0169ecc0a9054de7f4142155c1ab70258b 127.0.0.1:6379 myself,master - 0 0 7 connected 0-5461

8f285670923d4f1c599ecc93367c95a30fb8bf34 127.0.0.1:6380 master - 0 1496717082785 3 connected 5462-10922

66478bda726ae6ba4e8fb55034d8e5e5804223ff 127.0.0.1:6381 master - 0 1496717085793 2 connected 10923-16383

961097d6be64ebd2fd739ff719e97565a8cee7b5 127.0.0.1:6382 slave 29978c0169ecc0a9054de7f4142155c1ab70258b 0 1496717084791 7 connected

6fb7dfdb6188a9fe53c48ea32d541724f36434e9 127.0.0.1:6383 slave 8f285670923d4f1c599ecc93367c95a30fb8bf34 0 1496717087797 4 connected

e0c7961a1b07ab655bc31d8dfd583da565ec167d 127.0.0.1:6384 slave 66478bda726ae6ba4e8fb55034d8e5e5804223ff 0 1496717086795 2 connected

对应的主节点负责的槽位信息,如下图所示:

2. 扩容集群

扩容集群是分布式存储最常见的需求,Redis集群扩容可以分为如下步骤:

  • 准备新节点
  • 加入集群
  • 迁移槽和数据

2.1 准备新节点

我们需要两个节点,端口分别为63856386,配置和之前集群节点配置基本相同,除了端口不同,以便于管理。6385节点配置如下:

port 6385                               //端口
cluster-enabled yes                     //开启集群模式
cluster-config-file nodes-6385.conf     //集群内部的配置文件
cluster-node-timeout 15000              //节点超时时间,单位毫秒
// 其他配置和单机模式相同

启动两个节点

sudo redis-server conf/redis-6385.conf
sudo redis-server conf/redis-6386.conf

启动后的新节点会作为孤儿节点运行,没有和其他节点与之通信。

2.2 加入集群

我们可以通过CLUSTER MEET命令将6385节点加入到集群中。

127.0.0.1:6379> CLUSTER MEET 127.0.0.1 6385
OK
127.0.0.1:6379> CLUSTER NODES
cb987394a3acc7a5e606c72e61174b48e437cedb 127.0.0.1:6385 master - 0 1496731333689 8 c
显示全文