在迁移到 Redis Cloud 之前,您应该评估迁移并考虑最佳选项。阅读此指南以确定哪种迁移策略适合您。
[email protected]
gs://bucketname/[path/]filename.rdb
您的 Memorystore 实例必须从具有适当权限的 Compute Engine 实例访问。本指南假设您的 Memorystore 实例可以通过 Compute Engine 实例从互联网访问。
sudo apt update && sudo apt install -y redis-tools
3. 验证与 Memorystore 实例的连接,将 MEMORYSTORE_ENDPOINT 替换为您的 Memorystore 端点。
redis-cli -h MEMORYSTORE_ENDPOINT -p 6379
4. 安装 Java,推荐使用 OpenJDK 21 或更高版本
sudo apt install -y openjdk-21-jdk
5. 安装 RIOT。下载所需的版本。然后解压软件包,并确保 RIOT 二进制文件已就位,如下所示
wget https://github.com/redis/riot/releases/download/v4.2.3/riot-4.2.3.tar && tar -xvf riot-4.2.3.tar && cd riot-4.2.3/bin/
6. 您可以通过运行以下命令检查 RIOT 的版本
./riot --version
------------------------------------------------------------
riot 4.2.3
------------------------------------------------------------
Build time: 2025-02-16 18:35:57Z
Revision: d7a319522e4e72a2b5277e5a15bd715d557dedb6
JVM: 21.0.6 (Ubuntu 21.0.6+7-Ubuntu-120.04.1)
------------------------------------------------------------
安装完 Java 和 RIOT 后,您就可以开始迁移过程了,该过程直接将数据从源(Memory)复制到目标(Redis Cloud)。
sudo ./riot replicate redis://MEMORYSTORE_ENDPOINT:port redis://username:password@REDIS_CLOUD_ENDPOINT:port --mode live
注意
在线复制机制不保证数据一致性。Redis 通过 pub/sub 发送 keyspace 通知,这种方式不提供可靠送达保证。例如,在网络故障时,RIOT 可能会丢失一些通知。
此外,根据源数据结构的类型、大小和变更速率,RIOT 可能无法跟上变更流。例如,如果一个大型集合被反复更新,RIOT 需要在每次更新时读取整个集合并将其传输到目标数据库。对于足够大的集合,RIOT 可能会落后,并且内部队列可能会填满,导致更新被丢弃。
对于那些潜在的问题迁移,建议结合使用 Redis 统计信息和 bigkeys/memkeys 以及 --mem-limit 进行一些初步的规模调整。如果您需要帮助,请联系您的 Redis 客户团队。
更多信息,请参阅