Linux系统架构-----redis-cluster集群的节点扩容与数据恢复

一.案例概述

  • 某电商大型项目,由于业务大规模升级。项目中的前置缓存节点,已经不能满足当前的业务需求。现在对redis-cluster集群redis扩容一套redis主备节点,对于实际的生产环境,一般规划是在晚上凌晨12点操作。操作之前提前做好redis安装部署,晚上12点左右,业务量比较少,影响范围比较少,redis对接的底层数据库(MySQL),先要锁库、锁表,不生产业务流数据,这样redis集群可产生影响较小。

二.redis-cluster集群规划

  • 环境部署
类别IP地址系统软件包
master

ens33:192.168.43.101

ens37:192.168.43.247

ens38:192.168.43.248

新添加的master节点ens39:192.168.43.131

centos7

redis-5.0.7.tar.gz

rvm-1.29.9.tar.gz

slave

ens33:192.168.43.102

ens36:192.168.43.156

ens37:192.168.43.185

新添加的slave节点ens38:192.168.43.132

centos7redis-5.0.7.tar.gz
  • 为了节约资源,在一台虚拟机在添加多张网卡,模拟生产环境
  • 先模拟部署三台master和三台slave构建redis-cluster群集
  • 再添加一组redis服务器,进行节点扩容操作

三.部署redis-cluster集群

四.redis节点扩容

  • 在master中,将两个节点添加到集群,并查看状态(添加到集群中默认为master节点)
[root@master ~]# redis-cli --cluster add-node 192.168.43.131:6379 192.168.43.101:6379
[root@master ~]# redis-cli --cluster add-node 192.168.43.132:6379 192.168.43.101:6379
  • 查看节点(需要节点的ID号),这里会出现所有的节点信息
[root@master ~]# redis-cli -h 192.168.43.101 -p 6379
192.168.43.101:6379> cluster nodes
  • 平衡hash槽,自动迁移信息
#根据redis 槽位分析,一共有16384个槽位,如果分4个配套节点:每个节点是4096个槽位

[root@master ~]# redis-cli --cluster reshard 192.168.43.101:6379
How many slots do you want to move (from 1 to 16384)? 4096  #要迁移多少个槽

What is the receiving node ID? 99521b7fd126b694bcb9a22ffa5a490f31f66543  #迁移到哪个节点(192.168.43.131的ID)

Please enter all the source node IDs.
  
Type 'all' to use all the nodes as source nodes for the hash slots.
  
Type 'done' once you entered all the source nodes IDs.

#要求输入源节点的id,这里输入101,247,248三个节点,输入done表示结束

Source node #1: 7f112f82bcf28a5d0627ea81b48cb76f4ea8605d
Source node #2: df195a34a91d756157a0fda7c71e99d5bd8fad09
Source node #3: a233a23541f431107fed79908318394d8bb30b51
Source node #4: done

最后会有一个迁移方案,输入yes表示同意,迁移开始。输入no表示不同意,重新设置迁移方案。
  • 检测各个节点槽的均衡性
[root@master~]# redis-cli --cluster rebalance 192.168.43.101:6379
  • 将扩容的192.168.43.132,这个节点由主节点变为从节点
[root@master1 ~]# redis-cli -h 192.168.43.132 -p 6379
192.168.43.132:6379> cluster replicate 99521b7fd126b694bcb9a22ffa5a490f31f66543
OK
192.168.43.132:6379> cluster nodes      //查看节点信息,验证是否转变成功
  • 平衡各个节点槽的数量
[root@master ~]# redis-cli --cluster rebalance --cluster-threshold 1 192.168.43.132:6379
>>> Performing Cluster Check (using node 192.168.43.132:6379)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
*** No rebalancing needed! All nodes are within the 1.00% threshold.

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值