ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 812|回复: 0

[笔记] 利用redis-dump导出、还原数据

[复制链接]
论坛徽章:
3
Jeep
日期:2013-12-10 19:57:542014年新春福章
日期:2014-02-18 16:50:09马上有车
日期:2014-02-18 16:50:09
跳转到指定楼层
1#
发表于 2017-12-21 14:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
create-2017-12-01
角色:
源服务器 189.202 端口 6520
目标服务器  193.16 端口  6888

业务需求:有一台缓存服务器189.202,因系统问题无法登录,我们需要导出上面的缓存数据,通过迁移工具(redis-migrate-tool、redis-port)和主从方式均失败,最终利用redis-dump实现。

现在我们通过193.16服务器 安装利器后,把202服务器的数据导进来16的6888端口

一 、安装Ruby依赖
1)安装Ruby环境
yum -y install ruby ruby-devel
yum -y install rubygems
2)添加taobao Ruby镜像



添加淘宝ruby源;
# gem sources --add --remove
added to sources
source not present in cache

查看现有ruby源;
# gem sources --l
*** CURRENT SOURCES ***



二、安装redis-dump
Centos默认支持ruby到2.0.0,可gem 安装需要最低是2.2.2
解决办法是 先安装rvm,再把ruby版本提升至2.3.3
# gem install redis-dump
select id,user,host,db,command,time,state,info from information_schema.processlist where command <>'sleep'  order by time;
ERROR:  Error installing redis-dump:
        redis requires Ruby version >= 2.2.2.

# gpg2 --keyserver hkp:// --recv-keys D39DC0E3
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key D39DC0E3 from hkp server
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

1.安装curl
# sudo yum install curl

2. 安装RVM
# curl -L get.rvm.io | bash -s stable

3. source/usr/local/rvm/scripts/rvm

4. 查看rvm库中已知的ruby版本

# rvm list known   
   # MRI Rubies
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]

5. 安装一个ruby版本
# rvm install 2.3.4   这里要选择正确   //rvm install 2.3会失败

6. 使用一个ruby版本
#rvmuse2.3.4

# rvm --create ruby-2.3.4
Using /usr/local/rvm/gems/ruby-2.3.4

# ruby --version
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-linux]

7. 卸载一个已知版本rvmremove2.0.0

安装redis-dump
# gem install redis-dump

导出数据
# redis-dump -u 10.40.189.202:6520 > test.json

还原数据 ,如果redis的端口不是6520的话,还需要设定一个环境变量,用来导入数据。
# export REDIS_URI=127.0.0.1:6888
# < test.json redis-load
ERROR (Yajl::ParseError): lexical error: invalid bytes in UTF8 string.
          },"size":274} {"db":0,"key":"0000\u0005t\u0000#100776963
                     (right here) ------^
[root@cache_hx_193_16 bohai]# cp test.json test.json-bak

如果报错,请使用-n选项,使用请参考官方,请谨慎使用!
#< test.json redis-load -n    //-n (以二进制形式导入)

[size=1.8em]Loading data with binary strings
If you have binary or serialized data in your [size=14.3999996185303px] database, the YAJL parser may not load your dump file because it sees some of the binary data as 'invalid bytes in UTF8 string'. If you are certain that your data is binary and not malformed UTF8, you can use the -n flag to redis-load to tell YAJL to not check the input for UTF8 validity. Use with caution!

看到数据已经导入:
# redis-cli -p 6888 dbsize  
(integer) 5001
打赏鼓励一下!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018年2月13日前

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 |
  | | |
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表
北京赛车pk10 申博官网 北京赛车pk10 六台宝典现场开奖 北京赛车pk10历史记录 北京赛车开奖 北京赛车预测 949494开奖结果今晚 威尼斯人线上娱乐 手机投注平台 幸运28投注技巧 pk10助赢软件 北京pk10百度鼎盛彩票网 北京赛车聚彩 北京pk10如何稳杀3码 pk10稳赢方法 pk10定位计划 pk10包赢计划群