数据迁移
云数据库 Redis 支持 Redis Cluster 之间数据迁移,同时支持从云数据库 Redis Standalone 迁移数据到云数据库 Redis。
从Redis Standalone 迁移数据到 Redis Cluster
Redis 提供了从 Redis Standalone (包括 2.8.17 版本) 迁移数据到 Redis Cluster 的工具 redis-trib.rb
。
-
下载 Redis 包。
-
解压 Redis 4.x 包。
-
在 Redis
src
目录, 执行以下命令:Redis 4.x
./redis-trib.rb import --from 192.168.100.11:6379 192.168.100.20:6379 --copy
Redis 5.x
./redis-cli --cluster import 192.168.100.20:6379 --cluster-from 192.168.100.11:6379 --cluster-copy
其中: Redis Standalone 的主节点 IP 为 192.168.100.11,端口为 6379。Redis Cluster 其中一个节点的 IP 为 192.168.100.20,端口为 6379。
Redis Cluster 之间数据迁移
以将数据从 Redis Cluster A 迁移到 Redis cluster B 为例。
Redis Cluster A:主节点为 192.168.2.31:6379、192.168.2.32:6379、192.168.2.35:6379
Redis Cluster B:主节点为 192.168.2.14:6379、192.168.2.17:6379、192.168.2.19:6379
redis-port 迁移方式
仅适用于 Redis 4.x 版本迁移数据。
-
在选择 redis-port 迁移 slots 时,需先通过集群节点命令检查 A 和 B 的 slots 分布是否一致。
./redis-cli -h 192.168.2.31 cluster nodes ./redis-cli -h 192.168.2.14 cluster nodes
注意:
源地址
与目标地址
的 slots 分布必须一致。 在不一致的情况下,可以参考 migrateSlots.sh
将 B 的 slots 分布迁移至与 A 一致。 -
迁移数据。
下载并安装 redis-port 程序。
执行如下命令,迁移数据。
./redis-sync -m [源地址:端口号] -t [目标地址:端口号]
回显信息提示完成100%时,即可终止程序。
redis-port
工具也支持 RDB 文件方式导入。
RDB 文件迁移方式
仅适用于 Redis 4.x 和 Redis 5.x 版本迁移数据。
-
通过 禁用命令的执行 一栏
RDB 文件下载
下载源集群各主节点的 RDB 文件,并保存至网络与目标集群相通的虚机中。 -
在虚机中下载并创建
redis-server
实例。先关闭
redis-server
实例,复制待迁移的 RDB 文件到redis-server
的数据目录,并重启该虚机的redis-server
实例。 -
参考从 Redis Standalone 迁移数据到 Redis Cluster),将
redis-server
中的数据迁移至目标集群。 -
参考1~3,依次将 RDB 文件迁移至目标集群。