因为现阶段比较流行的都是redis 3.0之后的集群架构模式,它提供了灵活的节点扩容和收缩方案。在不影响集群对外服务的情况下,可以为集群添加节点进行扩容也可以对下线节点进行缩容。
扩容集群是分布式存储最常见的需求,Redis集群扩容可以分为如下步骤:
准备新节点:配置和之前集群节点配置基本相同,启动后的新节点会作为孤儿节点运行,没有和其他节点与之通信。
加入集群:我们可以通过CLUSTER MEET命令将新节点加入到集群中或者也可以使用redis专门进行集群管理的工具redis-trib.rb,新加入的节点都是主节点,因为没有负责槽位,所以不能接受任何读写操作,对于新加入的节点,我们可以有两个操作:为新节点迁移槽和数据实现扩容,作为其他主节点的从节点负责故障转移。
迁移槽和数据:当我们将新节点加入集群后,我们就可以将槽和数据迁移到新的节点,迁移的方法也有两种,可以使用redis-trib.rb工具,也可以通过手动命令的方式,但是一般要确保每个主节点负责的槽数是均匀的,因此要使用redis-trib.rb工具来批量完成。