如何将 Redis 迁移到阿里云数据库Redis版?
2018-10-09 by dongnan
目标
将阿里云 ECS 实例上的 Redis 服务(数据),迁移到云数据库 Redis版。
思路
思路是使用 redis AOF文件进行迁移,通过使用 redis-cli 命令行工具读取 AOF文件中的数据,将自建 Redis 服务(数据)迁移到云数据库 Redis版。
条件
- 由于云数据库 Redis版仅支持从阿里云内网访问,所以此操作方案仅在阿里云ECS上执行才生效,请提前准备ECS。
- redis-cli是- Redis原生的命令行工具。若- 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服务器,检查是否存在导入的数据。
扩展
- 如果遇到 redis-cli访问 redis云数据库报错errorERR illegal address,需要将 ECS主机IP添加到 redis云数据的 白名单。
- 迁移前可以使用 redis-cli BGREWRITEAOF命令创建一个新的appendonly文件。