Redis数据迁移与校验

  • 时间:
  • 浏览:2

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

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

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

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

  redis-full-check是阿里云Redis&MongoDB团队开源的用于校验有有有有1个redis数据与否一致的工具。

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



  redis-full-check对比的方向是单向:抓取源库A的数据,太多太多 检测与否存在B中,反向无需检测,也太多太多 说,它检测的是源库与否目的库的子集。太多太多 希望对比双向,则必须对比2次,第一次以A为源库,B为目的库,第二次以B为源库,A为目的库。

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

  在上端的几款工具中,除redis-shake外的几款工具太多太多 遗弃更新,太多太多本文将介绍redis-shake这款工具。

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

  redis-migrate通过伪装成从库,获取数据文件并进行解析处里。redis-migration在迁移过程中对数据做了落存在理,工具五种如此对数据进行加载,内存开销很小。另外在迁移RDB文件时采用RTT原本有有有有1个时间窗口,在你你这人时间窗口里并发多个客户端就都必须处里系统等待英文,极大提高性能;另外,AOF迁移以后 使用了pipeline特征,批量发送,减少RTT来加速迁移。

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

  redis-shake处里了下面1个现象:

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

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

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

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

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

参考链接:

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