Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1689113
  • 博文数量: 636
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3950
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-06 21:58
个人简介

博客是我工作的好帮手,遇到困难就来博客找资料

文章分类

全部博文(636)

文章存档

2024年(5)

2022年(2)

2021年(4)

2020年(40)

2019年(4)

2018年(78)

2017年(213)

2016年(41)

2015年(183)

2014年(66)

我的朋友

分类: 系统运维

2016-02-19 17:01:23

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  
阅读(1367) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~