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

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

[复制链接]

尚未签到

发表于 2018-11-3 09:59:38 | 显示全部楼层 |阅读模式
  需求环境
  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
DSC0000.png

  
  
  导出数据
  假设内网有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
DSC0001.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文件数据导入。
# python redisdl.py -l -H 192.168.204.128 -p 6379 -d 0 /tmp/db0.json
DSC0002.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文件数据导入到集群中去。
  集群信息:
# /path/to/redis/redis-trib.rbcheck 192.168.1.20:8001
DSC0003.png

# redis-cli -h 192.168.1.20 -p 12345 info
DSC0004.png

  数据导入:
# python redisdl.py -l -H 192.168.1.20 -p 12345 -d 0 /tmp/db0.json
DSC0005.png

  分别查看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



运维网声明 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-630119-1-1.html 上篇帖子: Redis中Key相关的常用指令详解 下篇帖子: LAMP+Redis缓存数据库整合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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