当需要进行Redis实例或集群数据迁移时,我们可以采用导出/导入的方式进行数据迁移,但当需要做数据异地灾备或双活时,再使用传统的方式就不合适了,我们需要借助工具(如redis-port/redis-shake)来完成。


redis-shake介绍

redis-shake就是一款非常好用的工具,可以支持备份、恢复、解析、同步等功能,主要的功能有:

  • decode,对RDB文件进行读取,并以json格式存储
  • restore,将RDB文件恢复到目的Redis服务器
  • dump,将源Redis服务器的数据通过RDB文件的方式保存下来
  • sync,支持源Redis和目的Redis的数据同步,通过模拟成Slave(使用psync),支持全量和增量数据的同步,对单节点、主从、集群环境之间进行同步(2.8-5.0版本,codis环境),也支持云上环境
  • rump,使用scan和restore命令进行数据迁移,对不支持psync命令的环境可以使用这种方式,仅支持全量的数据迁移

数据迁移原理

redis-shake通过模拟成一个从节点加入到源Redis,进行全量拉取并回放,然后进行增量的拉取。

其对大key的同步支持分批拉取,同时提供监控数据。

迁移演练

如从云上Redis迁移到线下Redis:

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

参考配置文件:

# idid = redis-shake# parallel routines number used in RDB file syncing.parallel = 4# source redis configuration.# used in `dump` and `sync`.# ip:portsource.address = 172.17.134.223:6379# password.source.password_raw = xxx# auth type, don't modify itsource.auth_type = auth# version number, default is 6 (6 for Redis Version <= 3.0.7, 7 for >=3.2.0)source.version = 6

# target redis configuration. used in `restore` and `sync`.# used in `restore` and `sync`.# ip:porttarget.address = 10.0.2.23:6379# password.target.password_raw = xx# auth type, don't modify ittarget.auth_type = auth# version number, default is 6 (6 for Redis Version <= 3.0.7, 7 for >=3.2.0)target.version = 6# all the data will come into this db. # used in `restore` and `sync`.target.db = -1# big key threshold, the default is 500 * 1024 * 1024. The field of the big key will be split in processing.big_key_threshold = 524288000# use psync command.# used in `sync`.# 默认使用sync命令,启用将会使用psync命令psync = false

同时也提供迁移的状态监控:

curl 127.0.0.1:9320/metric|jq

数据一致性校验

迁移后数据的一致性使用redis-full-check进行检查,通过多次对比的方式进行源端和目的端的数据校验,每次都会抓取源和目的端的数据进行差异化比较,记录不一致的数据(存储在sqlite3中)进入下一轮对比,支持对key、value或两者的一致性进行校验。

云上服务之间我们可以使用DTS来进行,毕竟是付费服务,相对来说更简单,需要在Redis服务上创建复制类型的账号。


redis 备份导出rdb_Redis数据迁移利器之redisshake相关推荐

  1. redis 备份导出rdb_redis简单安装学习

    redis 介绍 Redis是noSql也就是非关系型数据库,可以用来做缓存,缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去数据库进行操作,而去内存中取数据,这样 ...

  2. redis 备份导出rdb_Redis持久化知识点—RDB+AOF ,你了解多少

    本文主要深入了解RDB和AOF这两种持久化的逻辑和原理,喜欢的朋友欢迎点赞,写得不对的也请大佬多多批评和指正,以期共同进步,谢谢啦. RDB的原理 RDB持久化存储即是将redis存在内存中的数据以快 ...

  3. redis 备份导出rdb_Redis学习——Redis持久化之RDB备份方式保存数据

    从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能. 下面就介绍Redis的持久化之RDB! 一:什么是redis的 ...

  4. TiDB数据库备份恢复与数据迁移

    TiDB数据库备份恢复与数据迁移 数据迁移 使用 mydumper/loader 全量导入数据 mydumper/loader 全量导入数据最佳实践 某次导入示例,以及相关的配置 从 MySQL 导出 ...

  5. 系统重构数据同步利器之Canal实战篇

    一.背景 二话不说,先上图 上图来自于官网(https://github.com/alibaba/canal),基本上涵盖了目前生产环境使用场景了,众所周知,Canal做数据同步已经是行业内标杆了.我 ...

  6. 版本管理工具Subversion Edge的备份恢复与数据迁移方案

    软件开发生命周期中会使用到多种工具,这些工具的更迭与迁移,备份与恢复都构成了软件开发生命周期的重要部分.这篇文章以当下最新版本的Subversion Edge为例介绍一下其备份恢复与数据迁移方案,因相 ...

  7. 数据同步利器之Tapdata Cloud

    一.数据同步概述 数据同步,顾名思义就是对不同系统之间的数据进行同步处理.开发过程中遇到数据同步需求有很多,比如数据冗余备份.缓存实时更新.不同系统间基础数据实时同步等.同步方案的选择,需要根据具体的 ...

  8. redis哨兵集群数据迁移_redis集群数据迁移—redis-migrate-tool神器

    往常大家对数据的迁移可能会想到mysql.mongodb.oracle等数据库的迁移,对redis数据的迁移可能比较少,因为redis平时都是用来做缓存用,里面的数据无所谓.因为某些特殊场景下,red ...

  9. 混合云备份服务 > 数据迁移 > 文件同步 > ECS同步到NAS教程 > 文件同步

    文件同步 更新时间:2020-04-22 17:06:26 本页目录 步骤一:创建源数据地址 步骤二:创建目的数据地址 步骤三:创建同步任务 文件同步会占用源地址和目的地址的网络资源.若您的业务比较重 ...

最新文章

  1. IDA Pro 修改默认名称
  2. 机房六大安防系统常见故障原因及处理方法
  3. C# int.Parse()与int.TryParse():将字符串转化为整数
  4. 在Win平台得到磁盘、CPU、用户信息
  5. rabbitmq进阶一
  6. gitlab修改管理员密码流程
  7. mysql gtids_MySQL GTIDs(global transaction identifiers)
  8. javascript使用栈结构将中缀表达式转换为后缀表达式并计算值
  9. 手机“开口”,化身“智能机器人”
  10. ie浏览器打不开闪退_点开IE浏览器的时候总是闪退
  11. Ubuntu14.04安装文泉驿字体
  12. 谷歌浏览器插件之广告净化器
  13. i18n国际语言代码对照表
  14. Python绘制计算机CPU占有率变化的折线图
  15. linux yum下载不安装,CentOS 7设置yum仅仅下载rpm不安装总结
  16. Element动态换肤
  17. nginx: [emerg] could not build server_names_hash
  18. openpose handpose 人体关键点识别 关键点检测
  19. 【数据结构】第六章——图(详解)
  20. css 侧栏跟随_JS+CSS实现侧边栏跟随浏览器滚动效果

热门文章

  1. 关于React-native的介绍以及环境搭建
  2. JZTK项目 驾照题库项目servlet层得到的json字符串在浏览器中 汉字部分出现问号?无法正常显示的解决方法
  3. CSS border-radius边框圆角
  4. 用jQuery监听浏览器窗口的变化
  5. 关于 Nuxt 集成ueditor的一些坑(包括图片上传)前端部分
  6. springmvc mybatis 做分页sql 语句
  7. 解读阿里巴巴集团的“大中台、小前台”组织战略
  8. HDU 5025Saving Tang Monk BFS + 二进制枚举状态
  9. html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?...
  10. android fragmentactivity fragment,Android:Activity与Fragment通信(99%)完美解决方案