本文通过示例介绍了 RIOT 如何轻松地将数据从 AWS ElastiCache 迁移到云原生内存数据库(如 Tair 和云数据库 Redis 版)。
AWS ElastiCache cache.r6g.xlarge。它有三个数据分片,与 Redis 6.2 兼容。
AWS EC2 t2.medium CentOS 7(它与 AWS ElastiCache?位于同一 VPC 中,因为 ElastiCache 不支持公网连接。)
阿里云 Tairtair.rdb.with.proxy.24g。它有三个数据分片,与 Redis 6.0 兼容。(开启公网地址,白名单设置为EC2公网IP地址。)
打开 AWS ElastiCache 控制台左侧的参数组,然后根据当前版本创建一个新模板,例如 Redis 6.x。
?
sudo yum install java-1.8.0-openjdk -y
wget https://github.com/redis-developer/riot/releases/download/v3.1.5/riot-3.1.5.zip
unzip riot-3.1.5.zip
在 EC2 实例上部署 Redis 客户端并连接到 ElastiCache 实例以创建测试数据。
注意:如果已存在包含数据的 ElastiCache 实例,则无需重新创建测试数据。您可以在 EC2 实例上安装 Redis 客户端。
sudo yum install gcc jemalloc-devel openssl-devel tcltcl-devel -y
sudo wget http://download.redis.io/redis-stable.tar.gz
sudo tar xvzf redis-stable.tar.gz
cd redis-stable
sudo make BUILD_TLS=yes
src/redis-cli -c -h clustercfg.test-20230904.vsntkk.apne1.cache.amazonaws.com --tls -a xxxxxxxxxxxx -p 6379
登录 EC2 主机,使用 source 和 target 参数,启动 RIOT 程序同步全量数据和增量数据。
cd /home/centos/riot-3.1.5/bin
./riot -h clustercfg.test-20230904.vsntkk.apne1.cache.amazonaws.com --tls -a xxxxxxxxxxx -c -p 6379 replicate -h r-gs5u6x8xuwywt0q8qnpd.redis.singapore.rds.aliyuncs.com -p 6379 --user=poc --pass=xxxxxxxx -c --mode live --progress log
访问 Tair 控制台,通过 DMS 登录数据库,查询数据,检查全量数据是否迁移正常:
?
?
?
在源实例 Elasticache 中插入增量数据,并在目标实例 Tair 中验证增量数据:
?
?
?
使用 RIOT,您可以轻松地将数据从 AWS ElastiCache 快速迁移到云原生内存数据库,例如 Tair 和云数据库 Redis 版。与其他方法(如redis-shake)相比,该工具支持全量迁移和增强复制,迁移过程中无需停机,是提高效率的非常好的工具。