文档首页/ 云数据库 GeminiDB/ GeminiDB Redis接口/ 数据迁移/ 迁移后Redis数据一致性校验
更新时间:2024-05-20 GMT+08:00

迁移后Redis数据一致性校验

迁移完成后,您可以对Redis数据做一致性校验。

使用须知

  • Redis迁移已完成或者已经进入增量状态。
  • 需要ECS实例部署Redis-Full-Check开源工具,并确保与源端、目标端网络互通。
  • 如果迁移任务处于增量状态,由于迁移源端和目标端间存在网络时延,无法确保校验时数据一致,如有条件,建议停止对源端的写入后再做校验。
  • 业务使用Redis时往往存在给key设置过期时间,迁移时key过期行为会影响数据一致性,如果检验结果不一致,可能是由于key过期时间不一致导致。
  • 云厂商DTS在迁移过程中会往目标端Redis写入临时探活key,校验时可能发现非业务数据,属于正常现象。

操作步骤

  1. 登录ECS实例,确保能连上源端和目标端Redis。
  2. 部署redis-full-check工具。
  3. 执行以下命令进行数据校验。

    /redis-full-check -s {源端IP}:{源端端口} -p {源端密码} -t {目标端IP}:{目标端端口} -a {目标端密码} -m 1

    表1 参数说明

    参数

    参数

    参数示例

    -s

    源端Redis连接地址和端口。

    -s 10.0.0.1:6379

    -p

    源端Redis密码。

    -

    -t

    目标端Redis连接地址和端口。

    -t 10.0.0.2:6379

    -a

    目标端Redis密码。

    -

    -m

    校验模式:

    1. 全量校验所有键值对。
    2. 仅校验值的长度。
    3. 仅校验key完整性。
    4. 全量校验所有键值,但只校验大key的长度。

    默认为模式2。

    -m 1

    -q

    最大qps限制,默认15000。

    -q 5000

    -d

    校验结果保存的文件名称,默认result.db。

    -d result.db

  4. 查看校验结果文件。

    校验默认执行三轮,输出三个校验结果文件,一般只需要看最后一个校验结果文件。

    • 执行sqlite3 result.db.3。
    • 执行select * from key。
    • 查看是否存在异常的key。