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

[经验分享] redis-dump数据导出以及redis-load还原数据

[复制链接]

尚未签到

发表于 2018-11-2 13:17:30 | 显示全部楼层 |阅读模式
一 、安装Ruby依赖
  1)安装Ruby环境
  yum -y install ruby ruby-devel
  yum -y install rubygems
  2)添加taobao Ruby镜像
  添加淘宝ruby源;
  

gem sources --add http://gems.ruby-china.org --removehttps://rubygems.org/  
http://gems.ruby-china.org added to sources
  
source https://rubygems.org/ not present in cache
  

  查看现有ruby源;
  

#gem sources --l  
*** CURRENT SOURCES ***
  
http://rubygems.org/
  
http://gems.ruby-china.org
  

二、安装redis-dump
  Centos默认支持ruby到2.0.0,可gem 安装redis需要最低是2.2.2
  解决办法是 先安装rvm,再把ruby版本提升至2.3.3
  #gem install redis-dump
  

select>
ERROR:  Error installing redis-dump:  redis requires Ruby version >= 2.2.2.
  

  #gpg2 --keyserver hkp://keys.gnupg.net --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 keys.gnupg.net
  
gpg: /root/.gnupg/trustdb.gpg: trustdb created
  
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) " imported
  
gpg: no ultimately trusted keys found
  
gpg: Total number processed: 1
  
gpg:               imported: 1  (RSA: 1)
  

  1.安装curl
  #sudo yum install curl


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

  •   source/usr/local/rvm/scripts/rvm

  •   查看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]
      


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

  • 使用一个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]
  


  • 卸载一个已知版本rvmremove2.0.0
  安装redis-dump
  #gem install redis-dump

三、redis简单初步优化以及启动
  配置文件参数:
  

[root@git-server ~]# grep -Ev "^#|^$" /usr/local/redis/redis.conf |egrep "bind|port|tcp-backlog|daemonize|pidfile|loglevel|logfile|dir|requirepass|appendonly|appendfsync"  
bind 127.0.0.1
  
port 6379
  
tcp-backlog 511
  
daemonize yes
  
pidfile /var/run/redis_6379.pid
  
loglevel notice
  
logfile "/data/redis/log/redis.log"
  
dir /data/redis/data/
  
requirepass zykjdr#558996
  
appendonly no
  
appendfilename "appendonly.aof"
  

  启动:redis-server /usr/local/redis/redis.conf
  

[root@git-server log]# redis-cli -h 127.0.0.1 -p 6379 -a 'zykjdr#558996'  
127.0.0.1:6379> get key
  
(nil)
  
127.0.0.1:6379> set key01 name01
  
OK
  
127.0.0.1:6379> set key02 name02
  
OK
  
127.0.0.1:6379>
  

四、导出redis数据
  #redis-dump -u 127.0.0.1:6379 -a 'zykjdr#558996' > test.json
  

[root@git-server ~]# redis-dump -u 127.0.0.1:6379 -a 'zykjdr#558996' > test.json  
-bash: redis-dump: command not found
  

  原因是没有指定ruby-2.3.4的环境,导致找不到redis-dump命令
  解决办法:
  

[root@git-server ~]# rvm --create ruby-2.3.4  
Warning! PATH is not properly set up, '/usr/local/rvm/gems/ruby-2.3.4/bin' is not available.
  Usually this is caused by shell initialization files. Search for 'PATH=...' entries.
  You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'.
  To fix it temporarily in this shell session run: 'rvm use ruby-2.3.4'.
  To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file.
  
Using /usr/local/rvm/gems/ruby-2.3.4
  
[root@git-server ~]# which redis-dump
  
/usr/local/rvm/gems/ruby-2.3.4/bin/redis-dump
  

  数据导出
  [root@git-server ~]# redis-dump -u 127.0.0.1:6379 -a 'zykjdr#558996' > test.json
  

[root@git-server ~]# cat test.json  
{"db":0,"key":"key02","ttl":-1,"type":"string","value":"name02","size":6}
  
{"db":0,"key":"key01","ttl":-1,"type":"string","value":"name01","size":6}
  
[root@git-server ~]#
  

  在redis-server 中删除数据
  

127.0.0.1:6379> del key02  
(integer) 1
  
127.0.0.1:6379> get key02
  
(nil)
  
127.0.0.1:6379> del key01
  
(integer) 1
  
127.0.0.1:6379> get key01
  
(nil)
  

  redis-load 还原数据
  

[root@git-server ~]# < test.json redis-load -u 127.0.0.1:6379 -a 'zykjdr#558996'  
[root@git-server log]# redis-cli -h 127.0.0.1 -p 6379 -a 'zykjdr#558996'
  
127.0.0.1:6379> get key01
  
"name01"
  
127.0.0.1:6379> get key02
  
"name02"
  
127.0.0.1:6379>
  

  同时可以设置环境变量来使用redis-dump 和redis-load导出和导入redis数据
  在redis.conf配置文件中去掉redis-server的密码,
  设定一个环境变量
  

[root@git-server ~]# export REDIS_URI=127.0.0.1:6379  
[root@git-server ~]# redis-dump >test1.json
  
[root@git-server ~]# cat test1.json
  
{"db":0,"key":"key01","ttl":-1,"type":"string","value":"name01","size":6}
  
{"db":0,"key":"key02","ttl":-1,"type":"string","value":"name02","size":6}
  

  登录redis-server删除key值
  

[root@git-server log]# redis-cli -h 127.0.0.1 -p 6379 -a 'zykjdr#558996'  
127.0.0.1:6379> del key01
  
(integer) 1
  
127.0.0.1:6379> del key02
  
(integer) 1
  

  导入数据并查看导入的key值``
  

[root@git-server ~]#  get key01
  
"name01"
  
127.0.0.1:6379>
  

[root@git-server ~]#

运维网声明 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-629884-1-1.html 上篇帖子: spring boot构建基础版web项目(三)-springboot、redis数据缓存整合 下篇帖子: redis批量删除指定的key-10931853
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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