生产环境redis为3主3从 4核32G配置,业务量增长要扩容成4主4从的配置,看个网上的教程都是手动移动槽位太麻烦了,这次用cluster rebalance ,生产30多G的内存数据自动重新分槽 30分钟就扩容完了,全程对业务无影响。 redis集群版本5.0.4
以下是扩容过程
生产节点信息:
hm_redis_cluster001 192.168.0.1:7001 master
hm_redis_cluster002 192.168.0.2:7002 master
hm_redis_cluster003 192.168.0.3:7003 master
hm_redis_cluster004 192.168.0.4:7004 slave
hm_redis_cluster005 192.168.0.5:7005 slave
hm_redis_cluster006 192.168.0.6:7006 slave
本次扩容节点:
hm_redis_cluster007 192.168.0.7:7007 master
hm_redis_cluster008 192.168.0.8:7008 slave
07 08节点编译安装redis,创建修改集群配置文件,启动节点;
#07 节点启动后加入集群
./redis-cli --cluster add-node 192.168.0.7:7007 192.168.0.1:7001
Cluster nodes检查相关检点是否加入成功 加入成功后开始重分布,可以在任意节点执行
#设置--use-empty-masters可以让没有分配slot的master节点参与rebalance,这样达到扩容的目的
#迁移的slot阈值超过threshold,执行rebalance操作
./redis-cli --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 192.168.0.1:7001
重分布后检查各节点槽位数,4个master,每个主节点的槽位数为均分4096个槽,总0-16383个槽位。
#设置08节点为07节点从节点
./redis-cli --cluster add-node 192.168.0.8:7008 192.168.0.7:7007 --cluster-slave --cluster-master-id --cluster-master-id master节点ID
扩容结束 info 检查各节点主从状态