开发者社区> 梦想改造家> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

基于Redis-port实现阿里云上的Redis(集群版迁移)

简介: 本文是实现关于阿里云上Redis(集群版)的迁移,其实非集群的也可以实现,实现的方式都是相同的,都是通过Redis-port实现
+关注继续查看

本文是实现关于阿里云上Redis(集群版)的迁移,其实非集群的也可以实现,实现的方式都是相同的,都是通过Redis-port实现,只不过集群版的.rdb(数据文件)多一些。

首先介绍下什么是Redis-port:
Redis-port是github上的一款开源第三方软件,基于GO语言实现,主要是为Redis迁移服务。基本的四个功能是,decode(解码),restore(恢复),dump(导出),sync(同步),具体的操作方式如下:

  • DECODE dumped payload to human readable format (hex-encoding)
redis-port decode    [--ncpu=N] [--parallel=M] \
    [--input=INPUT] \
    [--output=OUTPUT]
  • RESTORE rdb file to target redis
redis-port restore   [--ncpu=N] [--parallel=M] \
    [--input=INPUT]  [--faketime=FAKETIME] [--extra] [--filterdb=DB] \
     --target=TARGET [--auth=AUTH] [--redis|--codis]
  • DUMP rdb file from master redis
redis-port dump      [--ncpu=N] [--parallel=M] \
     --from=MASTER   [--password=PASSWORD] [--extra] \
    [--output=OUTPUT]
  • SYNC data from master to slave
redis-port sync      [--ncpu=N] [--parallel=M] \
     --from=MASTER   [--password=PASSWORD] [--psync] [--filterdb=DB] \
     --target=TARGET [--auth=AUTH] [--redis|--codis] [--sockfile=FILE [--filesize=SIZE]]

以下是根据阿里云现有的Redis集群版实现的跨账号迁移操作具体如下:

  • 先下载老账号下Redis集群版的rdb文件:

因为我这是测试机没数据,先添点数据,写个python实现输出插入的语句200条:
_
在DMS上插入打印出来的200条redis执行命令:
_
查看下,插入数据成功:
_
接着将数据rdb文件下载:
先将实例全量备份,因为只插入了200条数据,所以数据量都是0M,,没关系反正有数据测试就ok,继续往下,点击右侧正常下载:
_

  • 在新账号下启一台ECS,将rdb文件上传,因为rdb文件有点长,你可以先更改为简单的名称,PS:rdb文件没指定的顺序,可以随意起名。

_

  • 在新ECS上 下载redis-port工具,可以通过下载

_

  • 将该redis-port修改为可执行文件 chmod u+x redis-port
  • 在redis-port所在目录下执行mkdir logs,因为redis-port需要一个日志目录存放错误日志,而redis-port又不会创建这个日志文件,这有点坑,不过没事手动创建吧
  • 测试下是否正常使用redis-port和rdb文件因为redis-port 需要输入redis数据库的密码,先检查是否有密码,使用config get requirepass查看,如下代表无密码,需要设置:
    _

1) 设置密码,config set requirepass 12345,将密码设置为12345,出现 NOAUTH Authentication required,表示需要密码登录,密码设置成功,接着通过auth 尝试登录:
_
2) 导入rdb查看是否正常,导入hins4621549_data_20180521104058.rdb 显示OK,之后将所有的rdb文件导入:

3) get a1的值 获到helloworld 成功。

  • 最后尝试将数据导入到redis集群中吧!
    ping r-bp154217ddd6dd14.redis.rds.aliyuncs.com测试redis和ECS内网是否互通,互通就可以尝试rdb文件的上传了,(PS:注意redis数据库有两种模式经典和专有,因为redis不支持通过公网访问所以在使用专有网络ECS时,一定要确保内网是互通的)

_
OK迁移完整,PS:在往redis数据库导入rdb文件时,需注意Redis的白名单的设置,要把ECS的内网放入进去不然会一直报错的
_

  • 通过控制台查看redis数据的,ok迁移成功
    _

_

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《阿里云Redis企业版Tair持久存储系列技术解读》电子版地址
阿里云Redis企业版Tair持久存储系列技术解读
0 0
《阿里云Redis企业版Tair持久存储系列产品详解》电子版地址
阿里云Redis企业版Tair持久存储系列产品详解
0 0
【Redis入门】在阿里云上快速安装 Redis
如果你最近打算学习 redis 并且买了阿里云的 Linux 服务器,那么借助阿里云服务器和宝塔Linux面板,只需要简单几步就可以安装好 redis。
0 0
《关于redis在阿里云》
在学习linux的过程中了解到阿里云,通过阿里云上的linux系统,系统学习了linux基本指令和redis知识
0 0
记一次阿里云esc实例被黑客利用redis默认端口6379入侵变成肉鸡的悲惨经历
网络安全无小事,任何的侥幸心理都不可有。对于redis的使用,尽量不要暴露在公网ip之下,并且不要使用默认端口,最好绑定可使用ip和设置密码等等
0 0
关于在阿里云esc创建的redis伪集群,java客户端无法连接的解决办法
创建集群的时候 --replicas 后边跟的ip一定要用公网的ip,用内网的ip地址客户端无法连接。 想要利用公网ip创建集群,在阿里的防火墙安全组里边要添加上集群端口。
0 0
倒计时1天,阿里云Redis 7.0发布会来袭
从Redis 7.0发布看Redis的过去与未来
0 0
+关注
梦想改造家
饿了么
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云Redis容灾体系介绍--夏周
立即下载
阿里云Redis——读写分离
立即下载
阿里云Redis服务助力游戏行业发展--王义成
立即下载