设为首页 收藏本站
查看: 807|回复: 0

[经验分享] 使用redis-dump-load工具导入导出redis数据

[复制链接]

尚未签到

发表于 2017-11-3 13:32:45 | 显示全部楼层 |阅读模式
需求环境
Redis-dump-load是基于python2.7,利用redis模块编写的一个导出/导入redis数据的一个python程序,因此,需求环境如下:
python 2.7
pip2.7
python.redis模块


安装程序
1
2
3
4
5
# 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



d3f26b3936ab666af9aa46a905c16eae.png




导出数据
假设内网有redis:192.168.1.20:6379,现可利用redisdl.py程序导出该redis数据到本地的json文件:
1
2
3
# 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



022fbe1993cb022e300cb0f36853a180.png       
     利用以上命令导出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文件数据导入。
1
# python redisdl.py -l -H 192.168.204.128 -p 6379 -d 0 /tmp/db0.json



5139e0633fd35b29c9ab26cb92319c64.png
     可以看到数据已导入,导入了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文件数据导入到集群中去。
集群信息:
1
# /path/to/redis/redis-trib.rbcheck 192.168.1.20:8001



412592e1b0f812b84f8328ddb1ecf578.png
1
# redis-cli -h 192.168.1.20 -p 12345 info



   350de5534b85a096adedb56a067ee8c0.png
    数据导入:

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



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

注:
redisdl.py导入数据时,会去检查redis的版本,由于使用corvus时,检查出的版本为corvus版本,比redis3.0+的版本低,故执行时会报错,需手动更改redisdl.py脚本:
1
2
3
# vi redisdl.py
# version = [int(part) for part inself.info()['redis_version'].split('.')]
version = 3






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-406517-1-1.html 上篇帖子: 查看redis(安装在linux服务器上)的版本 下篇帖子: 非root用户安装redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表