对于 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有一个很好的命令行工具可以帮助我们,这款工具就是RVM,RVM可以提供一个便捷的多版本 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

1.1  安装Ruby

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

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: > test.json
# 导出指定数据库数据
redis-dump -u 127.0.0.1: -d > test.json
# 如果redis设有密码
redis-dump –u :password@127.0.0.1: > test.json #导入命令
< test.json redis-load
# 如果redis设有密码
< test.json redis-load -u :password@127.0.0.1:

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..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

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

redis 迁移工具 redis-port 从阿里云迁移到aws的更多相关文章

  1. 从阿里云迁移分布式redis实例到华为云解决方案(详细)

    如果要换多数是经济因素啦- 一. 准备工作 先在华为云上买一台redis数据库,配置一定要注意多数要保持一致,至于4.0还是5.0倒问题不大亲测兼容 可用区要找现有ECS云主机中的相同的机器.记下:这 ...

  2. 阿里云短信验证解决方案(java版)(redis存储)

    最近搞了一个互联网项目的注册,需要写一个手机号验证(由于之前没有轮子,只能自己摸索了); 1:基本思路: 1>购买了阿里云短信服务->下载阿里云短信发送demo(java版); 2> ...

  3. 阿里云主机(aliyun-Linux) x64安装Redis详解

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/97.html?1455870336 如何在Linux​上安装Redis呢, ...

  4. 阿里云发布 Redis 5.0 缓存服务:全新 Stream 数据类型带来不一样缓存体验

    4月24日,阿里云正式宣布推出全新 Redis 5.0 版本云数据库缓存服务,据悉该服务完全兼容 4.0 及早期版本,继承了其一贯的安全,稳定,高效等特点并带来了全新的 Stream 数据结构及多项优 ...

  5. 阿里云至 Windows Azure 的 Linux 虚拟机迁移

    在Windows Azure中,用户可以对部署在Azure中的虚拟机的映像.磁盘以及快照进行生成和下载.用户可以方便地将Azure中的虚拟机实例迁移到本地.私有云甚至其他公有云平台进行测试.扩展或者再 ...

  6. gitlab安装、配置与阿里云产品集成

    https://www.ilanni.com/?p=12819 一.gitlab安装与部署 gitlab的安装可以分为源码安装和通过安装包进行安装,要是按照我以前的写作习惯的话,我也会把源码安装在本文 ...

  7. 2018年阿里云NoSQL数据库大事盘点

    NoSQL一词最早出现在1998年.2009年Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL概念, ...

  8. neo4j数据库数据转移,从阿里云转移到windows服务器

    1.从阿里云迁移neo4j时需停掉neo4j数据库,在neo4j的bin目录下输入 ./neo4j stop 2.将数据备份到一个文件中 ./neo4j-admin dump --database=g ...

  9. Redis安装(单机及各类集群,阿里云)

    Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很 ...

随机推荐

  1. hdu 3664 1~n排列(ai>i ) 为k个数

    http://acm.hdu.edu.cn/showproblem.php?pid=3664 求1~n的排列个数,使得逆序数(ai>i ) 为给定的k. dp[i][j]表示前1~i的排列中,有 ...

  2. log4j自动加载原理

    java虚拟机加载log4j的类(LogManager.class)后,执行静态代码块,这个类中的静态代码块,会load log4j的配置文件,依次加载log4j.xml,log4j.properti ...

  3. 如何关闭D10 启动后自动打开的 WelCome页

    在快捷方式上 修改为 "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\bds.exe" -pDelphi -np 最后增加 ...

  4. 如何充分利用 Windows Phone 高清屏幕

    Nokia 最近发布两款6寸大屏手机:Lumia 1520 和 Lumia 1320.为了支持这种设备 WP 升级了操作系统GDR3 支持了 1080P 的高清分辨率(1520),虽然GER3 是提供 ...

  5. Oracle/PLSQL: BitAnd Function

    BITAND 函数 本文介绍 Microsoft Excel 中 BITAND 函数的公式语法和用法. 说明 返回两个数的按位“与”. 语法 BITAND( number1, number2) BIT ...

  6. 跨终端Web

    1.终端vs设备 H5页面运行在同一设备的不同终端下. (1)Web浏览器. (2)微信.QQ浏览器. (3)移动App的Webview. (4)TV机顶盒. 2.跨终端的实现方式 (1)响应式 存在 ...

  7. 初识powershell、nuget powershell 调试

    初识powershell.nuget powershell 调试 补充 此文仅当做powershell的初步认识体验,关于nuget包里此脚本的使用官方已在vs2017停止支持,请看此文文末 前言 老 ...

  8. java poi 获取单元格值时间

    完整帮助类:JAVA poi 帮助类 /* * poi特殊日期格式:数字格式化成-yyyy年MM月dd日,格式 * */ private static ArrayList<String> ...

  9. asp.net—策略模式

    一.什么是策略模式 定义:定义一系列算法,把一个个算法封装成独立类并实现同一个接口,使得它们之间可以相互替换. 二.怎么使用策略模式 首先模拟一个场景:有一个用户想买车.  可以有多种方式买车: (1 ...

  10. Day 5 字典的操作

    1. 例子 ,务必理解 dic = { 'name':'金鑫', 'name_list':[1,2,3,'李杰'], 1:{ 'python10':['小黑','萌哥'], '老男孩':{'name' ...