zoukankan      html  css  js  c++  java
  • shell导出和导入redis

    1、导出redis

    [plain] view plain copy 在CODE上查看代码片派生到我的代码片
    1. #!/bin/bash  
    2. REDIS_HOST=localhost  
    3. REDIS_PORT=6379  
    4. REDIS_DB=1  
    5.   
    6.   
    7. KEYNAME=redis:hash:*  
    8. KEYFILE=key.txt  
    9. echo "KEYS $KEYNAME" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB > $KEYFILE  
    10.   
    11.   
    12. OUTFILE=valuelist.txt  
    13. TEMPFILE=$OUTFILE.tmp  
    14. echo > $TEMPFILE  
    15. for key in `cat $KEYFILE`  
    16. do  
    17.     echo $key  
    18.     #echo "HGETALL $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE    
    19.     echo "GET $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE  
    20. done  


    2、整理导出的结果

    [plain] view plain copy 在CODE上查看代码片派生到我的代码片
    1. cat $TEMPFILE|xargs -n 2|awk -F" " -v KEYNAME=$KEYNAME '{print "HSET "KEYNAME " " $1, """$2"""}' > $OUTFILE  

    其中的xargs -n 2是把2行合成一行,换行符用空格代替

    然后用awk按空格分开,$1是keynam $2是key的值

    再次转换成HSET的格式,其中用到KEYNAME变量,这个要用-v预先定义。

    最后转化为 HSET KEYNAME KEY "VALUE"格式。


    3、导入转换的结果

    [plain] view plain copy 在CODE上查看代码片派生到我的代码片
    1. cat $OUTFILE | redis-cli -h localhost -p 6379  

    二、直接用Redis的Dump和Restore导出和导入

    [plain] view plain copy 在CODE上查看代码片派生到我的代码片
      1. redis-cli --raw dump test | head -c-1 | redis-cli -x restore test1 0 
  • 相关阅读:
    Android模拟器快捷键
    深度理解依赖注入
    HTTP协议中PUT和POST使用上的区别
    HashMap与HashCode
    HashCode和hashMap hashTable
    apt-get指令的autoclean,clean,autoremove的区别
    Switching JRE Version
    Install Official Eclipse on Ubuntu
    Set Matrix Zeroes
    Unique Paths
  • 原文地址:https://www.cnblogs.com/MarchThree/p/5891227.html
Copyright © 2011-2022 走看看