迁移Redis数据集群

1 迁移准备

1.1 旧集群

迁移 Redis 数据集群

1.2 新集群

迁移 Redis 数据集群

2 迁移步骤

迁移 Redis 数据集群

3 迁移过程

3.1 新集群建立三主三从


echo "yes" | redis-cli -a "null" --cluster create
xx.xxx.101.20:7001 xx.xxx.101.21:7001 xx.xxx.101.22:7001 
xx.xxx.101.23:7001 xx.xxx.101.24:7001 xx.xxx.101.58:7001 --cluster-replicas 1

检查集群信息:


redis-cli -a "null" --cluster check xx.xxx.101.20:7001
redis-cli -a "null" -c -h xx.xxx.101.20 -p 7001 cluster nodes
redis-cli -a "null" -c -h xx.xxx.101.20 -p 7001 cluster info

3.2 停止新集群初始化的三主三从节点
停止 redis6 集群初始化的 6 个节点服务。

3.3 迁移旧集群数据到新三主
注:foot 管理员协助操作。

1)拷贝旧集群 xx.xxx.101.50(Master1)主机上/data/foot/paas-xj/data/redis/data 目录下 RDB 和 AOF 数据文件到 新集群 xx.xxx.101.20(Master1)主机上/data/foot/paas-xj/data/redis/data 目录下。

2)拷贝旧集群 xx.xxx.101.51(Master2)主机上/data/foot/paas-xj/data/redis/data 目录下 RDB 和 AOF 数据文件到 新集群 xx.xxx.101.21(Master2)主机上/data/foot/paas-xj/data/redis/data 目录下。

3)拷贝旧集群 xx.xxx.101.49(Master3)主机上/data/foot/paas-xj/data/redis/data 目录下 RDB 和 AOF 数据文件到 新集群 xx.xxx.101.22(Master3)主机上/data/foot/paas-xj/data/redis/data 目录下。

3.4 启动新集群 6 节点并检查集群状态
依次启动 redis 新集群三主三从节点服务。

并检查集群状态:


redis-cli -a "null" --cluster check xx.xxx.101.20:7001
redis-cli -a "null" -c -h xx.xxx.101.20 -p 7001 cluster nodes
redis-cli -a "null" -c -h xx.xxx.101.20 -p 7001 cluster info

3.5 添加 Master4 主节点到集群


redis-cli --cluster add-node xx.xxx.101.59:7001 xx.xxx.101.20:7001

加入集群后查看 Master4 主节点 id 信息并记录下来(master4xxx):


redis-cli -h xx.xxx.101.59 -p 7001 cluster nodes | grep myself

3.6 为 Master4 主节点添加 Slave4 从节点


redis-cli --cluster add-node xx.xxx.101.64:7001 xx.xxx.101.20:7001 --cluster-slave  --cluster-master-id master4xxx

3.7 添加 Master5 主节点到集群


redis-cli --cluster add-node xx.xxx.101.62:7001 xx.xxx.101.20:7001

加入集群后查看 Master4 主节点 id 信息并记录下来(master5xxx):


redis-cli -h xx.xxx.101.62 -p 7001 cluster nodes | grep myself

3.8 为 Master5 主节点添加 Slave5 从节点


redis-cli --cluster add-node xx.xxx.101.67:7001 xx.xxx.101.20:7001 --cluster-slave  --cluster-master-id master5xxx

3.9 添加 Master6 主节点到集群


redis-cli --cluster add-node xx.xxx.101.63:7001 xx.xxx.101.20:7001

加入集群后查看 Master4 主节点 id 信息并记录下来(master6xxx):


redis-cli -h xx.xxx.101.63 -p 7001 cluster nodes | grep myself

3.10 为 Master6 主节点添加 Slave6 从节点


redis-cli --cluster add-node xx.xxx.101.69:7001 xx.xxx.101.20:7001 --cluster-slave  --cluster-master-id master6xxx

3.11 从 Master1 分配一半数据槽 solt 至 Master4


redis-cli --cluster reshard xx.xxx.101.20:7001 
--cluster-from 5ac8a06ba4bd60958f82464f50965fc99cec773e 
--cluster-to master4xxx --cluster-slots 2730 --cluster-yes

3.12 从 Master2 分配一半数据槽 solt 至 Master5


redis-cli --cluster reshard xx.xxx.101.20:7001 
--cluster-from 9588b47df1100c571cb3df1049f63ba770a51063 
--cluster-to master5xxx --cluster-slots 2730 --cluster-yes

3.13 从 Master3 分配一半数据槽 solt 至 Master6


redis-cli --cluster reshard xx.xxx.101.20:7001 --cluster-from bbc3d92f0358772fb4957ffa29571d215597ad7a --cluster-to master6xxx --cluster-slots 2730 --cluster-yes

执行完如上步骤完成数据库迁移。

3.14 迁移后检查集群状态


redis-cli -a "null" --cluster check xx.xxx.101.20:7001
redis-cli -a "null" -c -h xx.xxx.101.20 -p 7001 cluster nodes
redis-cli -a "null" -c -h xx.xxx.101.20 -p 7001 cluster info

3.15 业务测试,模拟秒杀活动压测
1)业务系统验证

2)业务系统压测(分两种情况进行业务压测,业务压测并发数据)

测试一:rdb 和 ao 开启状态。

测试二:关闭 rdb 快照备份,只开启 aof。

3.16 通过压测结果设置 redis 持久化机制
根据两种压测情况观察 redis 读写性能:

观察 redis 集群节点日志(持久化数据大小,是否报错信息)。

观察 redis 节点 tps 指标。

维护侧与业务侧沟通好压测结果,确定好 redis 持久化后策略, 确定好后配置好 redis 持久还机制。

3.17 迁移及测试结果
根据迁移及测试情况做好记录,业务验证通过,则表示迁移 ok,反馈结果。

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...