Redis数据迁移-键迁移

转载 2018年04月16日 23:51:05

Redis数据迁移-键迁移

一.数据迁移

1.1 键迁移

有时候我们想将一个redis的数据迁移到另一个redis中,redis提供了三种方式来满足数据迁移的需求,分别是move、dump+restore、migrate

1.1.1 move key db

Redis支持多数据库,多数据库之间彼此在数据上是隔离的。move key db就是把指定的键从源数据库迁移到目标数据库中。由于多数据库在生产环境中不建议使用,所以此命令很少使用到。

1.1.2 dump+restore

命令: 源REDIS: dump key

     目标redis:restore keyttl value 其中ttl代表过期时间,单位:毫秒。0代表不过期

实现原理:

dump+restore可以实现redis不同实例之间的数据迁移。

(1)      在源Redis上,dump命令会将键值序列化,格式采用RDB格式。

(2)      在目标Redis上,restore命令会将上面序列化的值进行复原,其中ttl代表过期时间,如果ttl为0,则表示没有过期时间

 

 注意事项:

(1)      整个迁移过程并非原子性的,而是通过客户端分布完成的。

(2)      迁移过程是开启了两个实例的redis客户端,将源REDIS序列化后的值放到目标REDIS实例客户端进行操作,并不是在源Redis和目标Redis之间进行传输

1.1.3 migrate

migrate命令具有原子性,只需要在源redis实例上执行migrate命令即可。Migrate的命令传输直接在源redis和目标redis实例之间进行。

命令:migrate host port key |’’ destination-db timeout [copy] [replace][keyskey[key…]]

选项:host:目标redis的IP地址

     Port:目标redis的端口号

     key|’’’’:在Redis3.06版本之前,migrate只支持迁移一个键,所以此处是要迁移的键。

            Redis3.06版本之后支持迁移多个键,如果迁移多个键则此处填写空字符串’’’’

     destination-db:目标数据库索引,例如要迁移到0号数据库,这里就写0

     timeout:迁移的超时时间(单位毫秒)

     [copy]:添加此选项后迁移后并不删除源键

     [replace]:添加此选项后,不管目标redis是否存在该键,都会正常迁移进行数据覆盖

      [keys key[key…]]:迁移多个键,例如要迁移k1k2 k3,此处填写keys key1 key2 key3,当所有的key在源实例上不存在时返回nokey

 

例如:migrate 10.3.34.101 6378  010000 copy keys mi aa

将mi aa两个元素迁移到10.3.34.101 6378实例的0号数据库上,源实例mi aa两个键仍然保留。



https://blog.csdn.net/sunhuiliang85/article/details/74352446


Redis3.0集群完全版(数据迁移问题)

Redis3.0集群安装手册     一、概述 要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系...
  • luqiang81191293
  • luqiang81191293
  • 2016-02-03 11:43:50
  • 6223

redis--节点新增,切换,数据迁移

新增redis节点, redis版本为redis-3.0.7   ruby-2.2.2 添加主节点到集群命令:  [xxxxxx src]# ./redis-trib.rb  ad...
  • wuxu_nanjing
  • wuxu_nanjing
  • 2017-09-13 15:09:14
  • 304

3、Redis 集群特性之容错、数据迁移

前言: 该篇中主要讲解一下redis的容错以及数据的迁移(横向拓展) redis 集群信息 在前面章节中讲到将Node加入到cluster以后打印了如下日志: [root@localhost sr...
  • liaokailin
  • liaokailin
  • 2015-08-14 23:45:56
  • 3831

Redis 数据库迁移

这里说的数据库迁移,指的是,在一个服务器中生成的数据库文件,直接拷贝到另外一台服务器上,而且两台服务器可能使用的是不同的Redis端口及配置。 如果直接将数据库文件dump.rdb复制到另外一个Re...
  • niucsd
  • niucsd
  • 2016-03-23 19:57:31
  • 5025

简单redis迁移(会丢数据)

原redis A 迁移到新redis B C 1、在B执行slaveof A_ip A_port 命令开启主从同步,从A同步数据。C执行slaveof B_ip B_port 作为B的从机; 2、...
  • cs583200859
  • cs583200859
  • 2017-06-24 23:01:47
  • 244

Redis数据迁移操作步骤

redis数据迁移操作步骤 先使用redis客户端连接命令,分别连接旧环境中的主从redis Src目录下./redis-cli -h IP -p PORT 使用info repli...
  • dwyane__wade
  • dwyane__wade
  • 2018-01-30 22:20:44
  • 67

Redis-port安装使用实现redis迁移codis,以及简单redis pipe实现将mysql迁移redis

(0)Redis-port原理: 首先是看到下面这篇文档开始研究的redis-port  http://www.itnpc.com/news/web/146085373656602.html  简...
  • wyt568
  • wyt568
  • 2017-03-15 21:27:06
  • 1259

redis集群安装配置数据迁移和客户端(java方向)第二节,数据迁移

安装部署完成,下一节介绍,添加节点,删除节点,数据迁移,客户端(Java方向,主要是讲spring,jedis和cluster下的批量提交等)...
  • cs_chang
  • cs_chang
  • 2016-10-28 16:47:51
  • 570

redis的aof恢复与rdb服务器间迁移

一、aof恢复 当我们不小心执行flushall【清楚所有库中所有的数据】,我们必须马上做的就是执行一天命令: shutdown nosave【关闭服务器,并且不保存】 然后打开aof文件,找到...
  • php_younger
  • php_younger
  • 2017-03-07 10:55:31
  • 342

MongoDB 迁移到Redis记录日志 1

众所周知MongoDB使用BSON构建数据,然后使用者调用MongoDB的接口,以BSON为参数,将存储到本地 Redis则是键值对的方式,支持的数据类型有五种: 1、string(字符串); ...
  • qq_27385759
  • qq_27385759
  • 2018-02-07 17:55:59
  • 52
收藏助手
不良信息举报
您举报文章:Redis数据迁移-键迁移
举报原因:
原因补充:

(最多只允许输入30个字)