前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用redis-shake 进行redis的数据同步或迁移操作

使用redis-shake 进行redis的数据同步或迁移操作

作者头像
保持热爱奔赴山海
发布2019-09-17 14:52:04
2.5K0
发布2019-09-17 14:52:04
举报
文章被收录于专栏:数据库相关

redis-shake 是阿里开源的一个redis 同步工具(redis-migrate-tool比较老了,对一些命令的支持不好,并且官方的版本对应4.X的直接就是不支持)

下载地址: https://github.com/alibaba/RedisShake (直接去下载官方编译好的tar.gz包即可)

官方文档: https://yq.aliyun.com/articles/691794

mkdir /root/redis-shake-1.6.3 -pv

tar xf redis-shake.tar.gz -C /root/redis-shake-1.6.3

cd /root/redis-shake-1.6.3

我的修改后的配置文件如下: redis-shake.conf 

代码语言:javascript
复制
id = redis-shake
log.file = ./redis-shake.log
log.level = all
pid_path =  ./
system_profile = 9310
http_profile = 9320
ncpu = 0
parallel = 32
source.type = standalone     # 源redis是个单机版本的
source.address = 10.80.1.9:6389   # 这是我源redis的地址
# source.password_raw = 123456   # 没有密码的话, 可以注释掉这行配置,或者设置 source.password_raw =
source.auth_type = auth
source.tls_enable = false
target.type = standalone    # 目标redis 是个sentinel版的,下面 target.address 填sentinel环境下的redis master地址即可
target.address = 10.81.10.9:6390   # 目标redis的master地址
target.password_raw =
target.auth_type = auth
target.db = -1
target.tls_enable = false
rdb.input = local
rdb.output = local_dump
rdb.parallel = 0
rdb.special_cloud = 
fake_time =
rewrite = true
filter.db =
filter.key =
filter.slot =
big_key_threshold = 524288000
psync = false
metric = true
metric.print_log = false
heartbeat.url =
heartbeat.interval = 3
heartbeat.external = test external
heartbeat.network_interface =
sender.size = 104857600
sender.count = 5000
sender.delay_channel_size = 65535
keep_alive = 0
scan.key_number = 50
scan.special_cloud =
scan.key_file =
replace_hash_tag = false
extra = false

启动命令:     

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

数据同步过程到最后上线切换阶段, 我们还需要检验下数据是否一致。 可以使用配套的工具: redis-full-check

下载地址: https://github.com/alibaba/RedisFullCheck

文档地址:https://yq.aliyun.com/articles/690463?spm=a2c4e.11153940.blogcont691794.7.50c53f76mTeis6  (文档从原理到使用介绍得很详细,这里就不贴了)

redis-full-check的用法很简单, 解压后就一个可执行文件。

mkdir /root/redis-full-check-1.2.3/ -pv 

tar xf redis-full-check.tar.gz -C /root/redis-full-check-1.2.3/

cd /root/redis-full-check-1.2.3/

./redis-full-check.linux64 -s 10.80.1.9:6389  -t 10.81.10.9:6390 -p '' -a ''  --log=./check.log --result result.log  

稍等片刻,就会在目录下生产几个文件

image.png
image.png

这3个result.db.X 文件,就是我们3轮过程中最后产生的文件,可以使用sqlite3程序打开查看里面的内容。 result.log 是用来记录不一致结果的。  看 result.log 就可以初步知道哪些key不一致了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档