redis 迁移工具 redis-port 从阿里云迁移到aws
对于 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的更多相关文章
- 从阿里云迁移分布式redis实例到华为云解决方案(详细)
如果要换多数是经济因素啦- 一. 准备工作 先在华为云上买一台redis数据库,配置一定要注意多数要保持一致,至于4.0还是5.0倒问题不大亲测兼容 可用区要找现有ECS云主机中的相同的机器.记下:这 ...
- 阿里云短信验证解决方案(java版)(redis存储)
最近搞了一个互联网项目的注册,需要写一个手机号验证(由于之前没有轮子,只能自己摸索了); 1:基本思路: 1>购买了阿里云短信服务->下载阿里云短信发送demo(java版); 2> ...
- 阿里云主机(aliyun-Linux) x64安装Redis详解
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/97.html?1455870336 如何在Linux上安装Redis呢, ...
- 阿里云发布 Redis 5.0 缓存服务:全新 Stream 数据类型带来不一样缓存体验
4月24日,阿里云正式宣布推出全新 Redis 5.0 版本云数据库缓存服务,据悉该服务完全兼容 4.0 及早期版本,继承了其一贯的安全,稳定,高效等特点并带来了全新的 Stream 数据结构及多项优 ...
- 阿里云至 Windows Azure 的 Linux 虚拟机迁移
在Windows Azure中,用户可以对部署在Azure中的虚拟机的映像.磁盘以及快照进行生成和下载.用户可以方便地将Azure中的虚拟机实例迁移到本地.私有云甚至其他公有云平台进行测试.扩展或者再 ...
- gitlab安装、配置与阿里云产品集成
https://www.ilanni.com/?p=12819 一.gitlab安装与部署 gitlab的安装可以分为源码安装和通过安装包进行安装,要是按照我以前的写作习惯的话,我也会把源码安装在本文 ...
- 2018年阿里云NoSQL数据库大事盘点
NoSQL一词最早出现在1998年.2009年Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL概念, ...
- neo4j数据库数据转移,从阿里云转移到windows服务器
1.从阿里云迁移neo4j时需停掉neo4j数据库,在neo4j的bin目录下输入 ./neo4j stop 2.将数据备份到一个文件中 ./neo4j-admin dump --database=g ...
- Redis安装(单机及各类集群,阿里云)
Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很 ...
随机推荐
- hdu 5036 概率+bitset
http://acm.hdu.edu.cn/showproblem.php?pid=5036 n个房间每个房间里面有一把或多把钥匙可以打开其他的门.如果手上没有钥匙可以选择等概率随机选择一个门炸开,求 ...
- java学习之路-分享笔记20150327
---恢复内容开始--- 2个月间,断断续续学习了一段时间java平台相关知识,慢慢梳理出来一些枝枝叶叶,和大家交流下.3年前用java边看边做写了一个项目,所以对语法不是很关注.需要原文档的留邮箱吧 ...
- [翻译] Using Custom Functions in a Report 在报表中使用自己义函数
Using Custom Functions in a Report 在报表中使用自己义函数 FastReport has a large number of built-in standard ...
- 【TFS 2017】使用浏览器上传文件(TFVC)或者编辑代码,错误提示TF14098,需要对文件有PendChange 权限
从TFS 2015开始,微软在TFS系统中增加了一个非常吸引开发人员的功能,"快速代码编辑器" (Quick Code Editor).使用这个功能,你可以在任何安装了浏览器的设备 ...
- 4.C#WebAPI多版本管理介绍及实现方案详解
1.什么是 API 的多版本? 说白了就是多版本共存的问题.为方便大家理解我就举个例子吧,大家想必都用过Jquery吧,它的1.*版本做到了对低版本IE的支持:2.*版本还保留着ajax,但是不再支持 ...
- 自定义Asp.net core——日志记录
本文我将演示如何定制日志记录.默认的日志记录仅仅向控制台或者debug窗口输出日志,这样可以满足一些情况,但是你可能还需要把日志记录到一个磁盘文件或者数据库,或者你想为记录额外的信息.这样的场景你就需 ...
- (C#)计算1-2+3-4+.....+m
方法一: public static int Sum(int m) { int sum = 0; bool bol = true; for (int i=1;i<=m;i++) { if (bo ...
- winform 批量控件取值赋值
以前写winform 最多写几个文本框,最近需要入录一个人员信息,那好几十个字段,一下子干蒙了,这要是一个个取值赋值都写到明天了,于是就自己写了个方法,也不是什么高大上的,就是很简单很普通很low的方 ...
- Effective Java(1)-创建和销毁对象
Effective Java(1)-创建和销毁对象
- Day 39 管道 、数据共享与地址池
参考张磊同学的博客 http://www.cnblogs.com/chongdongxiaoyu/p/8658379.html 一.管道 #创建管道的类: Pipe([duplex]):在进程之间创建 ...