用脚本批量执行redis命令

来源:互联网 发布:视频捕捉软件 编辑:程序博客网 时间:2024/05/17 09:01

如果将命令写到txt文件中,形式为每行一个命令:set key value

 然后用cat example.txt | redis-cli --pipe

会提示All data transferred. Waiting for the last reply...
ERR syntax error
Last reply received from server.
errors: 1, replies: 2


需要将其转换成raw redis protocol形式,然后用unix2dos将文件转换,可以用shell脚本来实现前面的操作,再用cat example.txt | redis-cli --pipe

代码如下:

第一个参数是生成的set key value的文件,每行一个命令

第二个是生成的raw redis protocol文件

#!/bin/bashif [ $# -lt 2 ]then echo "Usage: file1 file2" exit -1fiFILEIN=$1FILEOUT=$2function gen_raw_redis{   while read -a col   doproto="${proto}*${#col[@]}\n"for ((i=0; i < ${#col[@]}; i++))doproto="${proto}\$${#col[i]}\n${col[i]}\n"done   done < ${FILEIN}      echo -e ${proto} > ${FILEOUT}   unix2dos ${FILEOUT}}gen_raw_redis


0 0