redis 迁移工具 redis-port 从阿里云迁移到aws

本文详细介绍了从阿里云迁移Redis到AWS的两种方法:使用redis-dump和redis-port工具。包括Ruby和redis-dump的安装配置,redis-port的下载及使用,以及在迁移过程中遇到的常见问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于 redis 的 迁移我在网上看到了很多方法,有使用redis-dump 的,有使用 aof导入方式,有rdb文件迁移方式,和redis-port。

由于我是将  redis  从阿里云迁移到AWS,那么很多方法都被pass掉了,最后我想使用的方法是redis-dump  和redis-port.

1. redis-dump

redis-dump这款工具需要用到 Ruby,而 centos环境中的 yum工具可以安装的 Ruby版本最高是 2.0的版本,而当前 Redis最新的 4.0版本中需要用到的 Ruby >= 2.2版本,所以我们需要先安装 Ruby,而安装 Ruby有一个很好的命令行工具可以帮助我们,这款工具就是 RVMRVM可以提供一个便捷的多版本 Ruby 环境的管理和切换。
# 首先老规矩,我们先到tmp下,用来存放下载的安装文件
cd /tmp
mkdir rvm
cd rvm
# 开始安装RVM
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 
curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer 
curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc 
gpg --verify rvm-installer.asc 
bash rvm-installer stable 
source /etc/profile.d/rvm.sh
View Code

1.1  安装Ruby

# 查看可以安装的Ruby版本
rvm list known 
 # 这里我们安装2.4.1
rvm install ruby 2.4.1 

1.2 安装redis-dump工具

# 移除gem自带源
gem sources --remove https://rubygems.org/ 
# 添加淘宝源
gem sources -a https://ruby.taobao.org/ 
# 安装redis-dump
gem install redis-dump -V

1.3 redis-dump导入导出

# 导出命令
redis-dump –u 127.0.0.1:6379 > test.json
# 导出指定数据库数据
redis-dump -u 127.0.0.1:6379 -d 15 > test.json
# 如果redis设有密码
redis-dump –u :password@127.0.0.1:6379 > test.json

#导入命令
< test.json redis-load
# 如果redis设有密码
< test.json redis-load -u :password@127.0.0.1:6379

redis-dump 工具我在使用的时候发现dump非常缓慢,所以我最终还是使用了redis-port,方便快捷。

2. redis-port

1.1 redis-port的下载

redis-port 的下载链接:链接:https://pan.baidu.com/s/1HkGUSjuYVp8i9K5awkVd0A  提取码:9grc

下载好后上传到我们的服务器。

1.2 阿里云redis备份下载

我们需要从阿里云将我们的 redis 的备份数据下载下来

我们在redis的控制台的备份与恢复中,找到我们最新的数据备份。点击下载。找到复制外网下载地址

拿到这个链接后,我们在linux 上 直接用 wget 命令下载是会报403错误的。原因是url里面包含特殊字符 比如 &,导致 URL被截断,造成请求 URL 不完整,OSS 中不存在对应的文件信息,所以访问被拒绝提示 403。

因此在 Linux 平台 URL 需要加上英文单引号才可以通过 wget 工具下载。

wget -c 'http://rdslog-bj.oss-cn-beijing.aliyuncs.com/custinsxxxx/hostinsxxxx/mysql-bin.001150.tar?OSSAccessKeyId=cxxzsxxxx&Expires=9999999&Signature=QxxxxxEwD' -O mysql-bin.001150.tar

# -c 参数使 wget 工具在连接中断的时候尝试断点续传。

# -O 参数将下载的结果保存为指定的文件(建议使用 URL 中包含的文件名)。

1.3 redis-port的使用

我们这里主要使用的redis-port 参数  restore

示例:

./redis-port  restore  --input=x/dump.rdb  --target=dst\_host:dst\_port   --auth=dst\_password  [--filterkey="str1|str2|str3"] [--targetdb=DB] [--rewrite] [--bigkeysize=SIZE] [--logfile=REDISPORT.LOG]
参数说明
src_host:自建 redis 域名(或者 IP)
src_port:自建 redis 端口
src_password:自建 redis 密码
dst_host:云数据库 redis 域名
dst_port:云数据库 redis 端口
dst_password:云数据库 redis 密码
str1|str2|str3:过滤具有 str1 或 str2 或 str3 的 key
DB:将同步入云 redis 的 DB
rewrite:覆盖已经写入的 key
bigkeysize=SIZE:当写入的 value 大于 SIZE 时,走大 key 写入模式

当出现restore: rdb done时数据恢复完成。

redis-port 还可以用来进行增量同步,会在我的另外一篇文章写到。

 注意事项:

redis 阿里云迁移到aws 流程:

redis bgsave 到 磁盘  ---》 阿里云备份 ---》下载备份----》 redis-port 导入---》redis数据检查。

遇到的问题:

redis-port 导入到99%后报错 parse rdb checksum error:

问题原因:

redis 默认是  关闭了   checksum。redis-port 工具进行导入的时候是需要效验的。

解决办法:

redis 执行 config set rdbchecksum yes。

这样生成的rdb文件就是可以正常导入的。

注意:阿里云的 redis 默认是开启了   checksum  参数的,但是具体不同地域的是否开通了,建议提交工单询问。

redis -dump 内容采用:链接:https://www.jianshu.com/p/19b5e7b3bffb

redis-port 内容借鉴阿里云文档 链接:https://help.aliyun.com/document_detail/66012.html

redis-port  github:https://github.com/CodisLabs/redis-port

层楼终究误少年   自由早晚乱余生

转载于:https://www.cnblogs.com/operationhome/p/9805476.html

### 阿里云服务器迁移AWS的解决方案 阿里云服务器迁移AWS的过程需要考虑多个方面,包括数据迁移、服务兼容性以及网络架构设计等。以下是针对这一场景的详细指南和工具方法。 #### 1. 数据迁移工具与方法 阿里云提供了多种工具支持跨云平台的数据迁移,例如Data Transfer Hub[^1],可以将数据从阿里云OSS实时迁移到Amazon S3。具体步骤如下: - **事件驱动机制**:通过阿里云的计算函数(如阿里云Function Compute),将新增文件以event的形式发送到Amazon SQS中。 - **实时任务创建**:SQS中的消息可以触发AWS Lambda函数,从而启动数据传输任务。 - **数据一致性**:确保在迁移过程中数据的一致性和完整性。 #### 2. Redis迁移策略 如果涉及Redis服务的迁移,可以参考阿里云Redis版本升级的经验[^3]。以下是一个通用的迁移流程: - **备份与恢复**:使用`redis-port`工具阿里云Redis 2.8的RDB备份文件导入到AWS ElastiCache for Redis实例上。 - **测试环境验证**:在测试环境中验证数据完整性和功能正确性。 - **切换流量**:逐步将生产流量切换到新的Redis实例。 ```bash # 示例:使用redis-port工具进行迁移 redis-port -h <source_redis_host> -p <source_redis_port> -a <password> \ -o dump.rdb aws s3 cp dump.rdb s3://<bucket_name>/dump.rdb ``` #### 3. 负载均衡服务迁移 对于负载均衡服务的迁移,可以参考AWS ELB(Elastic Load Balancing)的功能特点[^2]。以下是迁移建议: - **选择合适的ELB类型**:根据应用需求选择ALB(Application Load Balancer)、NLB(Network Load Balancer)或CLB(Classic Load Balancer)。 - **配置健康检查**:确保后端服务器的健康检查配置与阿里云SLB一致。 - **DNS切换**:更新DNS记录,将流量从阿里云SLB切换到AWS ELB。 #### 4. 云计算服务选型考量 在选择具体的迁移方案时,需综合考虑服务种类、性能、价格等因素[^4]。以下是一些关键点: - **服务种类**:AWS提供了丰富的服务生态,包括计算、存储、数据库、机器学习等。 - **性能优化**:根据应用的实际需求,选择合适的实例类型和存储方案。 - **成本控制**:通过AWS Cost Explorer工具分析和优化迁移后的成本。 ```python # 示例:使用AWS SDK (boto3) 创建S3桶 import boto3 s3 = boto3.client('s3') response = s3.create_bucket( Bucket='my-new-bucket', CreateBucketConfiguration={ 'LocationConstraint': 'us-west-2' } ) print(response) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值