对于 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

redis 迁移工具 redis-port 从阿里云迁移到aws相关推荐

  1. 华为云跨云迁移工具案例实践:阿里云迁移到华为云

    对于阿里云批量迁移到华为云,HyperMotion可以支持批量一键式安装Agent软件,做到了操作步骤简单化.自动化,可以满足常见源端操作系统类型. 例如:Windows 2003-2019,Cent ...

  2. Redis从阿里云迁移至华为云

    场景描述 公司服务器需要从阿里云迁移到华为云,但是应用里面有一些自增的编码是存储在redis中的,所以redis的数据也需要从阿里云迁移到华为云,阿里云采用redis 4.0 华为云使用 redis ...

  3. mindoc从阿里云迁移到本地

    mindoc从阿里云迁移到本地 1.登录阿里云 2.mindoc 文件备份 将整个mindoc目录压缩打包即可. smartty 远程拷贝下来 CentOS7 mysql数据库安装与配置(可以不安装) ...

  4. redis版本_全球首发|阿里云正式推出云数据库Redis6.0版本

    Redis 6.0更多精彩详情 2020年6月23日,阿里云正式推出云数据库Redis 6.0版本.Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性 ...

  5. redis 公网ip访问_阿里云Redis公网连接的解决办法

    ECS Windows 篇 目前云数据库 Redis 需要通过 ECS 的内网进行连接访问,如果您本地需要通过公网访问云数据库 Redis,可以在 ECS Windows 云服务器中通过 netsh ...

  6. Could not connect to SMTP host: smtp.163.com, port: 25;阿里云 ECS

    ECS基于安全考虑,目前已禁用25端口. 如果您的发送程序部署在阿里云ECS上,建议您不勾选SSL时,使用80端口,勾选SSL时,使用465端口. 测试端口   telnet smtp.163.com ...

  7. 【云迁移教程】从阿里云迁移到华为云(生产环境)

    一.迁移思路 迁移前的准备:阿里云ECS一台,华为云ECS一台,阿里云的服务器中需要准备测试数据,(下文准备了20G,数据量无硬性要求,可根据自己的需求改变) 二.开始迁移 2.登陆阿里云控制台,并进 ...

  8. 如何把数据从阿里云迁移到华为云

    首先购买一台华为云服务器,华为云注册链接如下: https://account.huaweicloud.com/obmgr/invitation/invitation.html?bpName=0000 ...

  9. 阿里云CEN、AWS TGW、腾讯云CCN 产品功能对比

    [阿里云]--云企业网 CEN  1.一个账号可以创建多个云企业网CEN实例,每个云企业网CEN可以创建多个tr转发路由器,每个CEN在同一个地域只可以创建一个tr转发路由器,一个tr转发路由器可以a ...

最新文章

  1. java 时间加减_Java中时间加减的比较
  2. PDU (协议数据单元)
  3. 大龄码农经验那么丰富,为什么很多公司都不招?
  4. matlab ssb,MatlabSSB信号的仿真分析.doc
  5. RMQ+1/-1算法 [转]
  6. Python的可变长度参数*和**,传参序列解包,isinstance的使用
  7. 如何系统的自学python-应该怎样系统的学习Python标准库?
  8. Hadoop1.0.4伪分布式安装
  9. C/C++网络编程详解(Windows版)
  10. SN65HVD888DR应用 TPS61170DRVR中文资料_1.2A 转换器
  11. UMail轻松搭建linux邮件服务器(一体盘安装)
  12. (poj 2377)Kruskal算法 最大生成树
  13. 看门狗的喂法(独立看门狗和窗口看门狗的区别)!
  14. 2019年数字IC校招薪酬火爆出炉,你被倒挂了吗_
  15. Unity开发元宇宙多人交互XR应用
  16. python单词库,标记单词
  17. 【人工智能】机器人的未来发展:从工业自动化到知识自动化
  18. AVG流氓软件卸载方法
  19. 基于站点休眠的中继网络动态节能拓扑控制
  20. 以下不是python内置数据类型的是_以下不是python内置数据类型的是

热门文章

  1. jQuery Validate详解
  2. PTX-PEG-TCO 紫杉醇-聚乙二醇-反式环辛烯
  3. Ubuntu下非常给力的下载工具--uget+aria2
  4. .net core 中使用confluent kafka构建生产者
  5. java基础语法(继承)
  6. Linux常用命令——ss命令
  7. DATABASE SYSTEM CONCEPTS
  8. React全家桶(技术栈) redux 代码
  9. ETL:WJLYZQWDD
  10. testpmd csum engine 测试 checksum hw offload