shell导出和导入redis

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell导出和导入redis相关的知识,希望对你有一定的参考价值。

1、导出redis

[plain] view plain copy 技术分享技术分享
  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 技术分享技术分享
  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 技术分享技术分享
  1. cat $OUTFILE | redis-cli -h localhost -p 6379  

 

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

[plain] view plain copy 技术分享技术分享
    1. redis-cli --raw dump test | head -c-1 | redis-cli -x restore test1 0 

以上是关于shell导出和导入redis的主要内容,如果未能解决你的问题,请参考以下文章

centos下redis的导出和导入(限set命令)

redis三种redis数据导出导入方式

MySQL导入导出数据时遇到Tab符号和换行符号怎么办

Redis 数据导入导出,redis-dump命令

redis数据导入导出

hbase 导入导出hbase shell 基本命令。