Redis数据迁移与校验

  • 时间:
  • 浏览:0

  由上文验证可知,redis-full-check都必须对比出源端与目标端的差异key。

  Redis-Migrate-Tool(RMT),是唯品会开源的redis数据迁移工具,主要用于异构redis集群间的数据在线迁移,数据迁移过程中源集群仍都必须正常接受业务读写请求,无业务中断服务时间。

  RMT启动后模拟成redis从库,请求主库的全量数据和增量数据。RMT收到数据已经 解析成redis协议格式的写操作,已经 发送给目标库。

  redis-migrate是一款轻量级的redis数据迁移工具,保持redis源码文件不做改动的前提下,只新增加了八个多"redis-migration.c"文件。

  redis-migrate通过伪装成从库,获取数据文件并进行解析除理。redis-migration在迁移过程中对数据做了落占据 理,工具这种 那末对数据进行加载,内存开销很小。另外在迁移RDB文件时采用RTT原先八个多时间窗口,在这种 时间窗口里并发多个客户端就都必须除理系统等待英文,极大提高性能;另外,AOF迁移已经 使用了pipeline型态,批量发送,减少RTT来加速迁移。

  redis-full-check是阿里云Redis&MongoDB团队开源的用于校验八个多redis数据算不算一致的工具。

  redis-full-check通过全量对比源端和目的端的redis中的数据的办法来进行数据校验,其比较办法通太满轮次比较:每次一定会抓取源和目的端的数据进行差异化比较,记录不一致的数据进入下轮对比(记录在sqlite3 db中)。已经 通太满轮比较不断收敛,减少因数据增量同步原困的源库和目的库的数据不一致。最后sqlite中占据 的数据已经 最终的差异结果。



  redis-full-check对比的方向是单向:抓取源库A的数据,已经 检测算不算占据 B中,反向太满再检测,也已经 说,它检测的是源库算不算目的库的子集。将会希望对比双向,则必须对比2次,第一次以A为源库,B为目的库,第二次以B为源库,A为目的库。

  redis-shake是阿里基于redis-port基础上进行改进的一款产品。它支持解析、恢复、备份、同步八个功能。

  redis-shake除理了下面八个问题:

  redis-shake的基本原理已经 模拟八个多从节点加入源redis集群,首先进行全量拉取并回放,已经 进行增量的拉取(通过psync命令)。

  都必须通过curl 127.0.0.1:9320/metric进行实时监控。

  由上文验证都必须得知,redis-shake支持全量+增量的数据迁移,已经 支持对RDB文件的备份以及解析。

  在底下的几款工具中,除redis-shake外的几款工具将会抛弃更新,全都本文将介绍redis-shake这款工具。

参考链接:

https://yq.aliyun.com/articles/691794https://yq.aliyun.com/articles/690463?spm=a2c4e.11155435.0.0.1cbe7bc170JysP

  redis-port是一组开源工具集合,主要用于Redis节点间的数据库同步、数据导入、数据导出,支持 Redis的跨版本数据迁移。

  Redis常见的数据迁移办法有以下这种 :RDB迁移、AOF迁移、主从克隆好友。

  使用RDB和AOF文件都必须实现跨网络隔离的数据迁移,已经 无法做到增量迁移。主从克隆好友都必须实现增量迁移已经 无法跨网络环境。另外,在过去对于数据迁移后的校验欠缺良好的手段。

  本文对这种 开源工具进行调研与实践,结果如下: