shell脚本redis操作--遍历key保存value

shell脚本redis操作–遍历key保存value

shell脚本redis操作

脚本分2部,redis查询出所需要的key,然后遍历key查询出所有的value追加到文件中;
(**想法:**本来是要循环遍历满足条件key的结果集的,但是失败了,所有就直接保存到文件中,读取文件每一行的结果,用这个结果查询value保存到新文件中;
**进一步优化:**因为key的type不同的原因,所有其实可以选用 type $key,来判断key的类型,从而选用不同命令查询value)

知识点

查询redis结果保存文件
echo "keys ‘’" | redis-cli -h ‘127.0.0.1’ -p 6379 -a ‘password’ > /tmp/allkeys.txt
keys '
’ 是redis语句

shell
shell脚本变量或者字符串连接直接写在一起

shell文件读取:
for line in cat file(待读取的文件)
do
echo $line
done

文件追加用: >>
文件覆盖用: >

整个脚本如下:

  1 #!/bin/bash
  2 filename='redis'`date +%Y-%m-%d`
  3 echo '实例化redis数据文件为:/tmp/'$filename
  4 echo "keys '*'" | redis-cli -h '127.0.0.1' -p 6379 -a 'password' > /tmp/al    lkeys.txt
  5 echo "将所有的key保存到/tmp/$filename.txt文件中"
  6 for line in `cat /tmp/allkeys.txt`
  7 do
  8         echo "key: "$line >>/tmp/$filename.txt
  9         echo "key-value:" >>/tmp/$filename.txt
 10         echo "get $line" | redis-cli -h '127.0.0.1' -p 6379 -a 'password'     >>/tmp/$filename.txt
 11 done

解释一下:
2行:定义保存文件名
4行:保存需要的key结果到文件
6行:循环读取满足条件的key文件,按行读取
8行:在文件中同时写入key,
10行:写入key的value到文件中
亲测可用:

shell脚本redis操作--遍历key保存value_第1张图片
shell脚本redis操作--遍历key保存value_第2张图片

你可能感兴趣的:(linux,数据库,shell,shell,keys,value)