使用redis-dump-load工具导入导出redis数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用redis-dump-load工具导入导出redis数据相关的知识,希望对你有一定的参考价值。

需求环境

Redis-dump-load是基于python2.7,利用redis模块编写的一个导出/导入redis数据的一个python程序,因此,需求环境如下:

python 2.7

pip2.7

python.redis模块

 


安装程序

# pip-2.7 install redis
# cd /usr/local
# git clone https://github.com/p/redis-dump-load.git
# cd redis-dump-load
# ./redisdl.py --help

技术分享



导出数据

     假设内网有redis:192.168.1.20:6379,现可利用redisdl.py程序导出该redis数据到本地的json文件:

# python redisdl.py -H 192.168.1.20 -p 6379 -d 0 -o /tmp/db0.json
# ll /tmp/db0.json
-rw-r--r--. 1 root root 411772591 Oct 17 09:15 /tmp/db0.json

技术分享      

     利用以上命令导出192.168.1.20:6379实例中的db0数据到本地/tmp/db0.json文件中,从info信息中可以看到db0一共有1758个key数据。

注:

执行导出数据命令时,若出现类似decode(encoding)的字符类编码错误时,可将程序中‘decode(encoding)’改为如下:

decode(‘utf-8‘,‘ignore‘)

 

 

导入数据—redis单实例

准备一个空的redis单实例:192.168.204.128:6379,把之前导出的/tmp/db0.json文件数据导入。

# python redisdl.py -l -H 192.168.204.128 -p 6379 -d 0 /tmp/db0.json

 技术分享

     可以看到数据已导入,导入了1756个key,与上述看到1758个key相差了两个,大部分的key数据已导入到新的redis实例中,缺失的2个key应该是在导出数据后源redis新增的key数据。

 

 

导入数据—redis_cluster

准备一个空的redis_cluster集群(192.168.1.20:8001/8002/8003),并部署corvus(redis-porxy:192.168.1.20:12345),可以利用corvus把之前到处/tmp/db0.json文件数据导入到集群中去。

集群信息:

# /path/to/redis/redis-trib.rbcheck 192.168.1.20:8001

 技术分享

# redis-cli -h 192.168.1.20 -p 12345 info

  技术分享

    数据导入:

# python redisdl.py -l -H 192.168.1.20 -p 12345 -d 0 /tmp/db0.json

 技术分享

分别查看8001、8002、8003三个单独rediscluster实例,可以看到通过corvus导入的数据已经分摊到各redis实例中,分别为545、626、584个keys。总数据为1755(导入后一个key过期了)。

 

注:

redisdl.py导入数据时,会去检查redis的版本,由于使用corvus时,检查出的版本为corvus版本,比redis3.0+的版本低,故执行时会报错,需手动更改redisdl.py脚本:

# vi redisdl.py
# version = [int(part) for part inself.info()[‘redis_version‘].split(‘.‘)]
version = 3


本文出自 “扮演上帝的小丑” 博客,请务必保留此出处http://icenycmh.blog.51cto.com/4077647/1978295

以上是关于使用redis-dump-load工具导入导出redis数据的主要内容,如果未能解决你的问题,请参考以下文章

数据泵EXPDP导出工具和IMPDP导入工具的使用

ORACLE 使用sqluldr2和sqlldr进行导入导出

oracle export工具导出与导入命令

Mongodb数据导出工具mongoexport和导入工具mongoimport使用

sqlserver的BCP导入导出

使用MongoDB命令工具导出导入数据