分享AWS的Redis如何正确迁移至阿里云项目实践

一、背景

最近项目上有一个需求,需要把aws的redis迁移至阿里云的redis,本来是想着用阿里云的dts实现在线迁移,但是aws对自己产品的redis高级命令作了限制,不允许用户使用,所以无法实现用dts迁移aws的redis。经过一番曲折之后,用下面的方法成功实现了aws的redis迁移至阿里云的redis。下面分享一下具体实现的过程。

二、实施过程

1、安装配置AWS的CLI

(1)安装AWS CLI

Amazon Linux(本环境) AWS CLI 预安装在 Amazon Linux AMI 上。

检查当前安装的版本,请使用以下命令:

$ aws --version
aws-cli/2.4.5 Python/3.8.8 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.13

(2)配置AWS CLI

AWS CLI 将此信息存储在文件中指定的配置文件(设置集合)default中 credentials。默认情况下,当您运行未明确指定要使用的配置文件的 AWS CLI 命令时,将使用此配置文件中的信息。

$aws configure
AWS Access Key ID [None]:***************
AWS Secret Access Key [None]: wJa***************LEKEY
Default region name [None]: cn-northwest-1
Default output format [None]: json

注:regoin name根据自己的实际情况填写,目前国内主要有宁夏(cn-northwest-1)、北京(cn-north-1)两个区。

2、安装迁移工具redis-shake

前提条件

目标Redis实例的版本社区版(4.0或5.0版本)或企业版(5.0版本)

Redis-shake介绍

Redis-shake是阿里云自研的开源Redis数据传输工具,支持对Redis数据进行解析(decode)、恢复(restore)、备份(dump)和同步(sync或rump),易于部署,灵活高效。本案例通过使用Redis-shake的restore(恢复)模式,将本地RDB文件中的数据恢复至云数据库Redis,从而实现数据迁移上云。

安装Redis-shake

1、登陆待安装的Redis-shake机器。

2、下载Redis-shake文件。

wget 'http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120287/cn_zh/1608173646665/redis-shake-v2.0.3.tar.gz'

3、解压Redis-shake文件。

tar xzf redis-shake-v2.0.3.tar.gz

4、修改参数文件。

参数

是否必填

说明

示例

source.rdb.input

备份文件(RDB文件)的相对路径或绝对路径。多个文件请使用英文分号(;)分隔。

/root/tools/RedisShake/demo.rdb

target.address

目标Redis实例的连接地址与端口号,连接地址和端口号之间使用英文冒号(:)分隔。

r-bp1wcw2rlw76acc5k.redis.rds.aliyuncs.com:6379

target.password_raw

目标Redis实例的账号(需具备读写权限)及其密码,账号和密码之间使用英文冒号(:)分隔。

testaccount:Rp829dlwa

key_exists

当源库中的Key与目标库中的Key相同时,采取的数据写入策略,取值:rewrite:覆盖写入至目标库。none:默认值,停止运行Redis-shake程序并提示冲突的Key。ignore:直接跳过当前迁移的Key,保留目标库的数据,继续执行数据迁移。

rewrite

parallel

Redis-shake执行迁移的并发线程数,适当调大该值可提高同步性能。默认值为32,最小值为1。

32

3、开始执行迁移

为了实现迁移的自动化,写了一个一键迁移脚本。

迁移流程简介:

  • 源库redis备份。
  • 把备份文件复制至S3。
  • 从s3下载备份文件至本地。
  • 运行Redis-shake程序,开始执行迁移。
#!/bin/bash
date=$(date+%Y%m%d%H%M%S)
#dump redis file
aws elasticache create-snapshot --cache-cluster-id deviceredis --snapshot-name myredis${date}
sleep 120s
copy_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
until [ $copy_status -eq 1]
do
copy_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
sleep 5s
done
#copy redisfile to s3
aws elasticache copy-snapshot --source-snapshot-name myredis${date} --target-snapshot-name myredis${date} --target-bucket redistmp
#download redisfile from s3
get_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
until [ $get_status -eq 1]
do
get_status=`aws elasticache describe-snapshots --cache-cluster-id deviceredis --snapshot-name myredis${date} |grep "available" |wc -l`
sleep 5s
done
aws s3api get-object --bucket redistmp --key myredis${date}-0001.rdb ./myredis${date}-0001.rdb
#restore to aliyun redis
sed -i "s/\/root\/redis-shake-v2.0.3\/.*rdb$/\/root\/redis-shake-v2.0.3\/myredis${date}-0001.rdb/g" redis-shake.conf
./redis-shake.linux-type=restore -conf=redis-shake.conf

说明:

日志中出现restore: rdb done表示数据恢复完成,此时使用Ctrl+C组合键停止运行Redis-shake。如下图所示:

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/293926.html<

(0)
管理的头像管理
上一篇2025-05-20 20:27
下一篇 2025-05-20 20:28

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注