Redis-shake工具 [ 自建redis集群->云redis主从 ]
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
Redis-shake工具 [ 自建redis集群->云redis主从 ]的更多相关文章
- Couchbase集群和Redis集群解析
Couchbase集群和Redis集群解析 首先,关于一些数据库或者是缓存的集群有两种结构,一种是Cluster;一种是master-salve. 关于缓存系统一般使用的就是Redis,Redis是开 ...
- Redis集群教程(Redis cluster tutorial)
本博文翻译自Redis官网:http://redis.io/topics/cluster-tutorial 本文档以温和的方式介绍Redis集群,不使用复杂的方式来理解分布式系统的概念. ...
- 实现Redis Cluster并实现Python链接集群
目录 一.Redis Cluster简单介绍 二.背景 三.环境准备 3.1 主机环境 3.2 主机规划 四.部署Redis 4.1 安装Redis软件 4.2 编辑Redis配置文件 4.3 启动R ...
- Linux--6 redis订阅发布、持久化、集群cluster、nginx入门
一.redis发布订阅 Redis 通过 PUBLISH .SUBSCRIBE 等命令实现了订阅与发布模式. 其实从Pub/Sub的机制来看,它更像是一个广播系统,多个Subscriber可以订阅多个 ...
- Redis源码解析:25集群(一)握手、心跳消息以及下线检测
Redis集群是Redis提供的分布式数据库方案,通过分片来进行数据共享,并提供复制和故障转移功能. 一:初始化 1:数据结构 在源码中,通过server.cluster记录整个集群当前的状态,比如集 ...
- Redis安装(单机及各类集群,阿里云)
Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很 ...
- redis入门指南(六)—— 集群
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 配置集群 1.配置集群,集群解决了单点故障以及单台机器内存上限的问题,使用集群时,只需要将配置文 ...
- Redis学习笔记(九)——集群
一.概述 Redis Cluster与Redis3.0.0同时发布,以此结束了Redis无官方集群方案的时代. Redis Cluster是去中心化,去中间件,也就是说,集群中的每个节点都是平等的关 ...
- redis集群之REDIS CLUSTER
redis集群之REDIS CLUSTER 时间 2016-04-11 17:05:00 NoSQL_博客园 原文 http://www.cnblogs.com/zhanchenjin/p/537 ...
- Redis集群~StackExchange.redis连接Twemproxy代理服务器
回到目录 本文是Redis集群系列的一篇文章,主要介绍使用StackExchange.Redis进行Twemproxy(文中简称TW)代理服务的连接过程,事务上,对于TW来说,我们需要理解一下它的物理 ...
随机推荐
- Kubernetes部署的10个注意事项
摘要 容器开发有望在云中实现前所未有的可移植性和可扩展 性.此外,DevOps 开发和文化实践也有助于提升业务价 值和响应能力.但是,在开始第一个容器开发项目之前, 有一些问题需要考虑清楚:我们应该使 ...
- Linux系统Shell脚本第六章:文件三剑客之sed
Shell编程三剑客之sed 前言 一.Sed编辑器 (1)Sed概述 (2)Sed工作流程 (3)Sed基本语法 二.Sed用法示例 (1)Sed输出指定行 (2)插入符合条件的行 (3)删除符合条 ...
- js-垃圾回收
js 是垃圾回收的语言,也就是执行环境负责在代码执行时管理内存.1. 标记清理 垃圾回收程序时,会标记内存中存储的所有变量,然后会将所有在上下文中的变量,以及被在上下文中的变量引用的变量标记去掉.在此 ...
- toast简介
PostgreSQL数据库不允许元组(行,记录)跨越多个页面(page)存储,所以,它不能直接存储非常大的字段值.对于大字段值,它将被压缩且(或)分解为多个物理行,该技术称为"TOAST&q ...
- 初学银河麒麟linux笔记 第六章 发布qt程序
本章参考了@长沙红胖子Qt 的笔记 https://blog.51cto.com/hongpangzi/5788384 这里纪录一下步骤 linux上的QT程序已经能正常编译运行,这里需要进行发布. ...
- 高斯判别分析GDA推导与代码实现
高斯判别分析GDA推导与代码实现 生成学习 处理分类问题,我们可以使用逻辑回归.Softmax.这两种方法都属于"判别学习",也就是给定 \((x^{(i)}, y^{(i)})\ ...
- 2.4 OpenEuler中C语言中的函数调用测试
2.4 OpenEuler中C语言中的函数调用测试 任务详情 在X86_64架构下实践2.4中的内容 通过GDB查看寄存器的内容,把教材中的图填入具体的值 把2.4的C代码在OpenEuler中重新实 ...
- BundleFusion_Ubuntu_Pangolin 安装的一些error
/usr/bin/ld: 找不到 -lEigen3::Eigen 解决方法:find_package(Eigen3 REQUIRED)为list(APPEND CMAKE_INCLUDE_PATH & ...
- Python学习笔记(四)算术运算符
一.算术运算符 运算符 说明 实例 结果 + 加 12.45 + 15 27.45 - 减 4.56 - 0.26 4.3 * 乘 5 * 3.6 18.0 / 除法(和数学中的规则一样) 7 / 2 ...
- (原创)odoo动态设置树形视图中的字段,每个用户可定制自己要显示的字段
模块详情