You need to enable JavaScript to run this app.
导航

使用限制(源库为 Redis)

最近更新时间2024.02.01 16:26:13

首次发布时间2021.11.23 10:18:01

本文介绍当迁移或同步的目标库类型为 Redis(如火山引擎缓存数据库 Redis 版或自建 Redis)时,支持的数据库以及使用限制详情。

支持的数据库

源库目标库支持的版本迁移类型同步类型
  • 火山引擎版 Redis

  • 公网自建 Redis

火山引擎版 Redis

  • Redis 4.0

  • Redis 5.0

  • Redis 6.0

  • 全量迁移

  • 增量迁移

  • 全量初始化

  • 增量同步

说明

  • 当您在创建同步任务时,当前仅支持选择火山引擎版 Redis。
  • 如需迁移阿里云的云原生内存数据库 Tair 的数据至火山引擎版 Redis,请提交工单联系技术支持。

使用限制

类型说明

源库限制

  • 带宽要求,源库所属的服务器需具备足够出口带宽,否则将影响数据迁移的速率。

  • 数据库传输服务 DTS 在执行全量迁移或全量初始化时,将占用源库和目标库的部分资源,可能会导致数据库服务器负载上升。当数据库业务量较大或服务器规格较低时,可能会加重数据库的压力,甚至导致数据库服务不可用。建议在业务低峰期执行数据迁移或同步,您也可以调大源库的client-output-buffer-limit 的参数值。

  • 当源库中的某些 Key 使用了过期(expire)策略时,可能存在 Key 已过期但未被及时删除的情况,导致目标库中查看到的 Key 数量(例如通过 info 命令查看)会比源库的 Key 数量少。

  • 当源库发生了水平扩缩容(如增减分片数),或垂直扩缩容(如升降级节点规格)时,您需重新配置任务。为保障数据一致性,在重新配置任务前,建议先清空已迁移或同步至目标 Redis 的数据。

  • 由于缓存数据库 Redis 版的单节点实例未开启 AOF 持久化,因此无法使用数据库传输服务 DTS 迁移或同步此类型实例。

  • 迁移或同步任务期间,如果源库的连接地址发生变化,会导致任务失败,您需要重新配置任务。如果仍未成功,可提交工单联系技术人员,如果长时间未处理,源库会重置 AOF 文件。

  • 用于数据迁移或同步的账号需具备以下权限:

    • 源库可以执行 syncpsyncconfig get 命令。

    • 目标库可以执行写命令。

其他限制

  • 在双向同步过程中仅支持两个 Redis 实例间的同步,不支持多个 Redis 成环的同步,同时也不支持级联。

  • 双向同步无法解决 CRDT 问题,您需要保证源库和目标库中没有对同一 Key 的操作。

  • 建议源库和目标库的 Redis 的数据库版本保持一致,或者从低版本迁移到高版本以保障兼容性。如果是高版本迁移到低版本,可能存在数据库兼容性或数据丢失问题。

  • 在增量数据迁移时,由于目标库在执行脚本时不会明确返回执行结果,对于通过 EVAL 或 EVALSHA 调用的 Lua 脚本,数据库传输服务 DTS 无法确认该类型脚本是否执行成功。

  • 目标 Redis 数据库的存储空间需大于源 Redis 数据库占用的存储空间。

  • 数据库传输服务 DTS 在调用 psyncsync 命令传输数据时,会对目标库数据进行覆盖写入,即如果目标库存在相同的 Key,会先进行 del 操作。

  • 在同步任务中,超过 16MB 的大 Key 会被丢弃,在同步任务前需谨慎评估。

特殊情况

  • 如果目标库的数据逐出策略参数 maxmemory-policy 配置为 noeviction 以外的值,可能导致目标库的数据和源库不一致。

  • 在迁移或同步任务执行过程中,源库、目标库重启或发生主备切换时,可能导致迁移或同步失败。