使用 AOF 文件进行迁移
更新时间:2024-07-03
概述
redis-cli 是原生 Redis 的命令行工具,您可以使用 redis-cli 将自建 Redis 中已保存至AOF文件的数据迁移到云数据库 Redis 版。本方案具有灵活、高效与自动化等特点,可保障数据的一致性与完整性,但本方案不支持实时同步,仅支持迁移离线数据。
建议停机迁移数据,或在迁移过程中不写入新的数据。
redis-cli不是在线迁移工具,而仅是一个简单的读取、发送工具,无法保证复杂的在线迁移场景,如需进行在线实时迁移,请参见 使用 DTS 迁移自建 Redis
前提条件
- 将客户端所在设备的IP地址添加到云数据库 Redis 版白名单中,更多信息请参见设置IP白名单。
- 自建Redis实例已开启AOF功能。若实例未启用,请执行
CONFIG SET appendonly yes
命令开启AOF功能。 - 自建Redis实例已关闭混合持久化。若自建实例为Redis 5.0及以上版本,请执行
CONFIG SET aof-use-rdb-preamble no
命令关闭混合持久化。
操作步骤
- 连接自建Redis实例,手动触发AOF文件重写,保存最新的AOF文件。
命令:redis-cli -h <自建Redis实例IP地址> -p <端口号> BGREWRITEAOF
返回:Background append only file rewriting started
- 通过AOF文件将数据导入到新的云数据库 Redis 版实例中,此处以AOF文件appendonly.aof为例。
命令:redis-cli -h <云数据库Redis版的IP地址> -p <端口号> -a <实例密码> --pipe < appendonly.aof
返回:
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 90
当看到类似上述信息,表示迁移成功。
后续步骤
如果自建Redis实例不需要一直开启AOF,可在导入完成后通过以下命令关闭。
命令:redis-cli -h <自建Redis实例IP地址> -p <自建Redis实例端口号> CONFIG SET appendonly no