Redis-shake工具 [ 自建redis集群->云redis主从 ]
2024-10-20 16:15:44
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
最新文章
- 利用Generator解决异步回调原理
- Multiple annotations found at this line
- 制作caffe中的test.txt和val.txt
- NOIP2008 T3 传纸条 解题报告——S.B.S.
- Dynamics CRM记录页面上隐藏子网格“+”标识
- LightOj 1148 Basic Math
- java 1.8 动态代理源码分析
- 使用Ratpack与Spring Boot构建高性能JVM微服务
- rapidjson 的练习
- 新一代.NET平台三大框架的定位
- RPi Desktop盒子安装与服务配置
- Java继承相关知识总结
- django-媒体文件,图片存储
- Android网络开发之WIFI
- HDU1176:免费馅饼(dp,数字三角形的应用)
- Laravel向视图传递变量的两种方法
- Linux 能PING IP 但不能PING 主机域名的解决方法 vim /etc/nsswitch.conf hosts: files dns wins
- 使用JMeter测试Java项目
- Adobe Flash Player 27 on Fedora 27/26, CentOS/RHEL 7.4/6.9
- 从PEP-8学习Python编码风格
热门文章
- sql两种表联查更新的方法
- Traefik官方文档以及翻译文档
- Excel工具(批量生成txt)
- GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused
- pycharm安装appium,通过国内的镜像源安装python包,注意每次都要添加信任选项 --trusted-host mirrors.aliyun.com
- Firefox几个必备的插件
- 把excel表中的数据导入到mysql数据库中
- 哲讯科技携手江苏大摩半导体借助SAP ERP打造数字化转型升级
- spdlog库和fmt库是否使用dll宏定义
- 提取可执行文件中的调试信息 objcopy --only-keep-debug app app.debug