记录一次redis-shake跨云迁移阿里云redis混合型到腾讯云tendis

1. redis-shake它支持解析、恢复、备份、同步四个功能

  • 恢复restore:将RDB文件恢复到目的redis数据库。
  • 备份dump:将源redis的全量数据通过RDB文件备份起来。
  • 解析decode:对RDB文件进行读取,并以json格式解析存储。
  • 同步sync:支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。需要注意的是,如果源端是集群版,可以启动一个RedisShake,从不同的db结点进行拉取,同时源端不能开启move slot功能;对于目的端,如果是集群版,写入可以是1个或者多个db结点。
  • 同步rump:支持源redis和目的redis的数据同步,仅支持全量的迁移。采用scan和restore命令进行迁移,支持不同云厂商不同redis版本的迁移。

2. redis-shake.conf参数优化

  • ncpu = 4     #根据申请的CVM的情况,可以设置为CPU核心数
  • parallel = 64   #同步rdb文件并发数设置为64
  • scan.key_number = 1000000   #每次scan key的个数,这个参数很重要,决定了迁移的整体时长

3. 迁移方案(云工具DTS均不支持,redis-shake只支持全量,增量暂时没有工具支持)

方案一:
  1. 阿里云混合型redis
  2.腾讯云内存型redis
  备注:当时scan设置的500,300GB数据测试10个小时;设置成10000可能会快很多

方案二:
  1. 阿里云 混合型redis --> 内存型redis
  2. 控制台备份
  3. 内网地址下载rdb文件
  4. scp RDB文件的到腾讯云的CVM
  5. 导入RDB到内存型tendis
  备注: scan设置成5000,总共时长5.5小时

参考链接:

   https://developer.aliyun.com/article/691794
   https://github.com/alibaba/RedisShake?spm=a2c4g.11186623.2.8.7a9f5663a6E7Oq

原文地址:https://www.cnblogs.com/Jack1023/p/14584012.html