首页 > 代码库 > shell导出和导入redis
shell导出和导入redis
1、导出redis
[plain] view plain copy
- #!/bin/bash
- REDIS_HOST=localhost
- REDIS_PORT=6379
- REDIS_DB=1
- KEYNAME=redis:hash:*
- KEYFILE=key.txt
- echo "KEYS $KEYNAME" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB > $KEYFILE
- OUTFILE=valuelist.txt
- TEMPFILE=$OUTFILE.tmp
- echo > $TEMPFILE
- for key in `cat $KEYFILE`
- do
- echo $key
- #echo "HGETALL $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE
- echo "GET $key" | redis-cli -h $REDIS_HOST -p $REDIS_PORT -n $REDIS_DB >> $TEMPFILE
- done
2、整理导出的结果
[plain] view plain copy
- 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
- cat $OUTFILE | redis-cli -h localhost -p 6379
二、直接用Redis的Dump和Restore导出和导入
[plain] view plain copy
- redis-cli --raw dump test | head -c-1 | redis-cli -x restore test1 0
shell导出和导入redis
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。