使用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
时间: 2024-10-16 11:15:31

使用redis-dump-load工具导入导出redis数据的相关文章

Mysql导入导出大量数据的方法、备份恢复办法

经常使用PHP+Mysql的朋友一般都是通过phpmyadmin来管理数据库的.日常的一些调试开发工作,使用phpmyadmin确实很方便.但是当我们需要导出几百兆甚至几个G的数据库时,phpmyadmin就会很卡.甚至如果你是想导入大量数据,则phpmyadmin完全无法完成.因为phpmyadmin是基于PHP网页的,无法上传太大的sql文件.其实mysql官方给了我们很好的解决方案:mysqldump. 下面介绍,如何在Windows环境下,使用mysqldump导出数据库: 找到你mys

5.非关系型数据库(Nosql)之mongodb:创建集合,备份与导入导出, 数据还原,导入导出

 1 固定集合 固定集合值得是事先创建而且大小固定的集合 2 固定集合的特征:固定集合很像环形队列,如果空间不足,最早文档就会被删除,为新的文档腾出空间.一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制. 3 创建固定集合使用命令: db.createCollection("collectionName",{capped:true,size:100000,max:100}); size:指定集合大小,单位为KB,max指定文档的数量 当指定文档数量上限时,

Oracle sqlldr导入导出txt数据文件详解

一.sqlldr导入txt 1.预备 a).txt文件 这里要保存成无签名的UTF-8 b).oracle建表 2.编写控制文件input_test.ctl LOAD DATA CHARACTERSET 'UTF8' --字符集设定 INFILE 'd:\input_test.txt' --要导入的文本数据路径,可写多个REPLACE into TABLE input_test --清空原有数据再导入方式 追加导入 用append into table t_namefields terminat

MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器

———————————————-库操作———————————————-1.①导出一个库结构 mysqldump -d dbname -u root -p > xxx.sql ②导出多个库结构 mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql 2.①导出一个库数据 mysqldump -t dbname -u root -p > xxx.sql ②导出多个库数据 mysqldump -t -B dbname1 dbname2 -u r

Asp.net中利用NPOI组件快速导入导出Execl数据

相信很多童鞋都开发过Execl的导入导出功能,最近产品中无论是后台数据分析的需要,还是前端满足用户管理的方便,都有Execl导入导出的维护需求产生. 以前做这个功能,如果是web,利用HttpContext.Current.Response.ContentType ="application/ms-excel";就可以导出html数据表格到execl中,这种方法的问题就是编码格式的兼容性太差,用Mac OS之类的 office打开直接乱码给你看.或者是调用office的COM组件,或宏

phpmyadmin导入导出大数据文件的办法

在phpmyadmin的使用中,经常需要进行导入导出数据库的操作. 但是在导入导出大型数据库文件的时候经常会只是部分导出或者部分导入. 或者是导入导出不成功. 原因就是服务器和php.mysql限制了导出导入数据库文件的大小.而改相应的配置又十分繁琐,所以这里提供一个绕过导出导入有大小限制的办法. 这个思路就是直接在服务器上面进行导出导入.过程如下 将phpMyAdmin/config.sample.inc.php 文件改名为phpMyAdmin/config.inc.php并打开编辑 * Di

Oracle使用imp/exop远程导入导出dmp数据

在导入导出数据之前,习惯性的检查一下,看看我们自己的机器可不可以连接远程的Oracle主机,检测方法是tnsping SERVICE_NAME.我的机器如下: C:\Users\zx>tnsping orcl 如图:主机为:Lenovo-PC,服务名:orcl 上述操作是ping自己,下面我们ping远程主机.使用方法:tnsping IP/SERVICE_NAME,如下: C:\Users\zx>tnsping 10.120.56.203/orcl 如图:主机和服务名由下图中红框标出 远程导

BCP 导入导出数据库数据

使用 bcp 将数据库迁移到 Azure SQL Database --所有 都是在本机sql上运行--先开启cmdshellEXEC sp_configure 'show advanced options', 1GORECONFIGUREGOEXEC sp_configure 'xp_cmdshell', 1GORECONFIGUREGO/**导出指定表的文本文件 */--EXEC master..xp_cmdshell 'bcp MyDB.dbo.Feedbacks out D:\BcpFi

java导入导出Excel数据的要点记录

< 客户端的B/S架构输出方式 加下划线这部分代码是B/S模式中采用的输出方式, //获得输出流,该输出流的输出介质是客户端浏览器 OutputStream output=response.getOutputStream(); response.reset(); response.setHeader("Content-disposition","attachment; filename=temp.xls"); response.setContentType(&