redis-shake工具是阿里用go写的开源工具

开始前准备

1. 确保ECS实例与Redis实例属于同一专有网络(即实例基本信息中的专有网络ID一致)
2. 获取ECS实例的内网IP地址,即执行操作的机器IP
3. 将ECS实例的内网IP地址添加至Redis实例的白名单中

安装Redis-shake

1. 安装Redis-shake的设备,例如ECS实例
2. 使用下述命令下载工具
# wget 'http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120287/cn_zh/1608173646665/redis-shake-v2.0.3.tar.gz'
3. 解压Redis-shake文件
# tar xzf redis-shake-v2.0.3.tar.gz

迁移Redis

在安装Redis-shake的设备上,执行数据迁移

修改配置文件

1. 执行下述命令进入解压后的目录并修改配置文件:
# cd redis-shake-v2.0.3/ && vim redis-shake.conf
conf.version = 1
id = redis-shake
log.file = /data/software/redis-shake-v2.0.3/redis-shake.log
log.level = info
parallel = 8
source.type = cluster
source.address = 172.18.0.232:7001;172.18.0.233:7001;172.18.0.234:7001
source.password_raw = username:password //用户名:密码
source.auth_type = auth
target.type = standalone
target.address = r-wz9xxxgi3xxxxxgj:6379 //云redis地址和端口
target.password_raw = r-wz9xxxgi3xx:xxxSO0 //用户名:密码
target.auth_type = auth
target.db = -1 //是否迁移到同一个db中去
key_exists = rewrite
filter.db.whitelist = 0;70;71;72;73

启动Redis-shake,开始执行数据迁移

./redis-shake.linux -type=sync -conf=redis-shake.conf

Redis-shake将在屏幕上打印运行的日志信息。

迁移日志观察

1. 当打印的日志出现sync rdb done,表示完成全量数据迁移,接下来进入增量数据迁移阶段。
2020/12/16 21:02:36 [INFO] DbSyncer[0] total = 4.00MB - 4.00MB [100%] entry=97531
2020/12/16 21:02:36 [INFO] DbSyncer[0] sync rdb done

2. 增量迁移日志
2020/12/16 21:03:10 [INFO] DbSyncer[0] sync: +forwardCommands=645 +filterCommands=0 +writeBytes=657255
2020/12/16 21:03:11 [INFO] DbSyncer[0] sync: +forwardCommands=28 +filterCommands=0 +writeBytes=28532
2020/12/16 21:03:12 [INFO] DbSyncer[0] sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
  • forwardCommands:源库发送过来的命令数。
  • filterCommands:被过滤的命令数,例如在Redis-shake配置文件中设置了过滤某些库。
  • writeBytes:源库发送过来的字节数。

暂停向源库写入数据,等待返回日志中writeBytes对应值连续多次为0时,使用Ctrl+C组合键停止运行Redis-shake。

1. 当多次+writeBytes为0,则可终止同步
2020/12/16 21:03:12 [INFO] DbSyncer[0] sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
2020/12/16 21:03:12 [INFO] receive signal interrupt

参考:  https://help.aliyun.com/document_detail/111066.html?spm=a2c4g.11186623.6.646.4bd72074q7LKOV

https://www.cnblogs.com/xingxia/p/redis_migration_tool.html

最新文章

  1. 利用Generator解决异步回调原理
  2. Multiple annotations found at this line
  3. 制作caffe中的test.txt和val.txt
  4. NOIP2008 T3 传纸条 解题报告——S.B.S.
  5. Dynamics CRM记录页面上隐藏子网格“+”标识
  6. LightOj 1148 Basic Math
  7. java 1.8 动态代理源码分析
  8. 使用Ratpack与Spring Boot构建高性能JVM微服务
  9. rapidjson 的练习
  10. 新一代.NET平台三大框架的定位
  11. RPi Desktop盒子安装与服务配置
  12. Java继承相关知识总结
  13. django-媒体文件,图片存储
  14. Android网络开发之WIFI
  15. HDU1176:免费馅饼(dp,数字三角形的应用)
  16. Laravel向视图传递变量的两种方法
  17. Linux 能PING IP 但不能PING 主机域名的解决方法 vim /etc/nsswitch.conf hosts: files dns wins
  18. 使用JMeter测试Java项目
  19. Adobe Flash Player 27 on Fedora 27/26, CentOS/RHEL 7.4/6.9
  20. 从PEP-8学习Python编码风格

热门文章

  1. sql两种表联查更新的方法
  2. Traefik官方文档以及翻译文档
  3. Excel工具(批量生成txt)
  4. GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused
  5. pycharm安装appium,通过国内的镜像源安装python包,注意每次都要添加信任选项 --trusted-host mirrors.aliyun.com
  6. Firefox几个必备的插件
  7. 把excel表中的数据导入到mysql数据库中
  8. 哲讯科技携手江苏大摩半导体借助SAP ERP打造数字化转型升级
  9. spdlog库和fmt库是否使用dll宏定义
  10. 提取可执行文件中的调试信息 objcopy --only-keep-debug app app.debug