跳转至

如何将 Redis 迁移到阿里云数据库Redis版?


2018-10-09 by dongnan

目标

将阿里云 ECS 实例上的 Redis 服务(数据),迁移到云数据库 Redis版。

思路

思路是使用 redis AOF文件进行迁移,通过使用 redis-cli 命令行工具读取 AOF文件中的数据,将自建 Redis 服务(数据)迁移到云数据库 Redis版。

条件

  1. 由于云数据库 Redis 版仅支持从阿里云内网访问,所以此操作方案仅在阿里云 ECS 上执行才生效,请提前准备 ECS
  2. redis-cliRedis 原生的命令行工具。若 ECS 上无法使用 redis-cli,可以先下载安装 Redis 即可使用 redis-cli

步骤

  • 开启现有 Redis 实例的 AOF 功能。
# 如果实例已经启用 AOF 功能则忽略此步骤
redis-cli -h your-redis-ip -p your-redis-port config set appendonly yes
  • 通过 AOF 文件将数据导入到新的云数据库 Redis 版实例。
# 假定生成的 AOF 文件名为 appendonly.aof
redis-cli -h aliyun_redis_instance_ip -p 6379 -a password --pipe < appendonly.aof
  • 关闭ECS 上的 Redis 服务(可选)。
redis-cli -h your-redis-ip -p your-redis-port  shundown

验证

登陆 阿里云 redis服务器,检查是否存在导入的数据。

扩展

  1. 如果遇到 redis-cli 访问 redis云数据库报错 errorERR illegal address,需要将 ECS主机IP添加到 redis云数据的 白名单
  2. 迁移前可以使用 redis-cli BGREWRITEAOF 命令创建一个新的 appendonly 文件。

参考

使用AOF文件进行迁移

回到页面顶部