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

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 本文是实现关于阿里云上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实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8天前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
32 0
|
7天前
|
缓存 开发框架 NoSQL
【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?
【Azure Redis 缓存】VM 里的 Redis 能直接迁移到 Azure Cache for Redis ? 需要改动代码吗?
|
7天前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Cache for Redis 如何迁移
【Azure Redis 缓存】Azure Cache for Redis 如何迁移
|
8天前
|
存储 缓存 NoSQL
【Azure Redis 缓存 Azure Cache For Redis】Redis支持的版本及不同版本迁移风险
【Azure Redis 缓存 Azure Cache For Redis】Redis支持的版本及不同版本迁移风险
|
2月前
|
存储 NoSQL 算法
Redis 集群模式搭建
Redis 集群模式搭建
54 5
|
19天前
|
NoSQL Redis
Redis——单机迁移cluster集群如何快速迁移
Redis——单机迁移cluster集群如何快速迁移
30 0
|
24天前
|
NoSQL Linux Redis
使用docker-compose搭建redis-cluster集群
使用docker-compose搭建redis-cluster集群
|
24天前
|
NoSQL Linux Redis
基于redis6搭建集群
基于redis6搭建集群
|
4月前
|
机器学习/深度学习 NoSQL Redis
Redis高可用之集群架构(第三部分)
Redis高可用之集群架构(第三部分)
下一篇
云函数