如何将 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
文件。