redis单机,主从,哨兵加主从,集群搭建,凡是集群肯定避免不了服务器上下线调整,这时候就会涉及到Redis的扩容和缩容,今天一起来看下redis扩容和缩容的过程。
一、redis的扩容
1.1、本地集群介绍(已搭建好的)
192.168.209.128:6379
192.168.209.129:6379
192.168.209.130:6379
192.168.209.128:6380
192.168.209.129:6380
192.168.209.130:6380
1.2、新增两个redis实例

1.3、增加master节点
执行:
[WARNING] Node xx.xx.xx.xx:xx has slots in importing state 14041
(其中xx.xx.xx.xx:xx就是ip:端口,后面也不一定是14041,根据你们实际的情况来)
解决办法:登录xx.xx.xx.xx:xx这个节点,执行cluster setslot 14041 stable即可。
,出现New node added correctly表示成功。

1.4、查看集群信息
执行:

这时候你可以看到新增的节点角色已经变为master。
注意:这时候新增的这个master上是没有槽位信息的。
1.5、增加从节点
src/redis-cli --cluster add-node 192.168.209.128:6382 192.168.209.128:6369 --cluster-slave --cluster-master-id a6a7a1a331bf07f5bfdae9db8537acdf7745c84f


1.6、分配槽位
这里你随便填个数字(比如4096)就行,意思是要给这个新增的master分配多少个槽位。

二、redis的缩容
2.1、迁移槽位
这里咱把刚才加的那台去掉,看下现在的集群信息:


src/redis-cli --cluster reshard --cluster-from 54a75b1e6c77c26da42666a090b997dbc51aa69c --cluster-to 1765c1bda12cc7bf85b73b9ff7330183b06d98ca --cluster-slots 1365 192.168.209.128:6379
src/redis-cli --cluster reshard --cluster-from 54a75b1e6c77c26da42666a090b997dbc51aa69c --cluster-to 08869829316e5703a8a17d326926b8415378c1c0 --cluster-slots 1365 192.168.209.128:6379
src/redis-cli --cluster reshard --cluster-from 54a75b1e6c77c26da42666a090b997dbc51aa69c --cluster-to 7512f2f291f4ec004d07eae68de654d1ff93f3b1 --cluster-slots 1366 192.168.209.128:6379
--cluster-from:要删除的主节点id
--cluster-to:接收迁移槽的主节点id
--cluster-slots:迁移槽的数量
ip:端口:集群任意1个节点即可

都写yes,下图显示正在迁移中:

迁移完毕后再看下集群信息,会发现已经没有槽位了。

2.2、删除节点
这里假设咱后来加的6381和6382在一台机器上,既然这台机器要下掉,那么这一主一从都要删除。

src/redis-cli --cluster del-node 192.168.209.128:6379 54a75b1e6c77c26da42666a090b997dbc51aa69c
src/redis-cli --cluster del-node 192.168.209.128:6379 a6a7a1a331bf07f5bfdae9db8537acdf7745c84f
192.168.209.128:6379为集群中的任意一个节点即可。






