redis 集群 分片 扩容_redis 集群的扩容缩容

一、扩容

方法一:利用ruby工具

1、创建新的节点

mkdir -p /opt/redis_{6390,6391}/{conf,logs,pid}
mkdir -p /data/redis_{6390,6391}
cd /opt/
cp redis_6380/conf/redis_6380.conf redis_6390/conf/redis_6390.conf
cp redis_6380/conf/redis_6380.conf redis_6391/conf/redis_6391.conf
sed -i 's#6380#6390#g' redis_6390/conf/redis_6390.conf
sed -i 's#6380#6391#g' redis_6391/conf/redis_6391.conf
redis-server /opt/redis_6390/conf/redis_6390.conf
redis-server /opt/redis_6391/conf/redis_6391.conf
ps -ef|grep redis

2、将新的主节点加入集群

redis-trib.rb add-node 10.0.0.51:6390 10.0.0.51:6380
#                                     将新的节点添加到6380所在集群

3、转移slot(重新分片)

redis-trib.rb reshard 10.0.0.51:6380

4、将从节点加入集群

redis-trib.rb add-node --slave --master-id 881a713dcd1569a2426a69038f76e9718884e227 10.0.0.516391 10.0.0.51:6380
#                            添加从节点      主节点id                                                                                    新从节点信息     所加入的集群信息

方法二:利用自带命令

1、创建新的节点

mkdir -p /opt/redis_{6390,6391}/{conf,logs,pid}
mkdir -p /data/redis_{6390,6391}
cd /opt/
cp redis_6380/conf/redis_6380.conf redis_6390/conf/redis_6390.conf
cp redis_6380/conf/redis_6380.conf redis_6391/conf/redis_6391.conf
sed -i 's#6380#6390#g' redis_6390/conf/redis_6390.conf
sed -i 's#6380#6391#g' redis_6391/conf/redis_6391.conf
redis-server /opt/redis_6390/conf/redis_6390.conf
redis-server /opt/redis_6391/conf/redis_6391.conf
ps -ef|grep redis

2、将新添加的节点加入到集群

redis-cli -c -h 10.0.0.51 -p 6380 cluster meet 10.0.0.51 6390
redis-cli -c -h 10.0.0.51 -p 6380 cluster meet 10.0.0.51 6391
redis-cli -c -h 10.0.0.51 -p 6380 cluster nodes

3、扩容(重新分配槽位)

redis-cli --cluster reshard 10.0.0.51:6380

v2-e226cab036c7dfc77942d5c60c73c74a_b.jpg

4、手动添加复制关系

二、缩容

缩容思路

v2-36d0123a4b518cd26eac09bd3a88f4b2_b.jpg

将要下线节点的槽重新分配至其他节点

方法一:利用ruby工具

redis-trib.rb reshard 10.0.0.51:6380

第一次还原

v2-322c53eb9520fe82c1a9a57b611ea2a2_b.jpg

第二次还原

v2-faca57ee51132b1f9dd24d692000628b_b.jpg

第三次还原

v2-58f6f35d91c883d4c2da84aa7ac530a7_b.jpg

删除节点

redis-trib.rb del-node 10.0.0.51:6390 881a713dcd1569a2426a69038f76e9718884e227
redis-trib.rb del-node 10.0.0.51:6391 efad54782609d6bcae5a7635399c91f08cb75a0a

方法二:利用自带命令

redis-cli --cluster reshard 10.0.0.51:6380

v2-f70966dd68c2ea73c79ea8e806112d2b_b.jpg

v2-23d7b571a69fa593d16b7bbd6fee62e7_b.png

重复上述操作,知道6390所有的槽都被分配完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值