shell指令碼redis操作

2021-10-04 18:40:14 字數 1424 閱讀 9837

指令碼分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(待讀取的檔案)

doecho $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到檔案中

Lua指令碼操作redis

eval script numkeys key key arg arg script 對應lua指令碼 numkeys 指定鍵名引數個數 key 為鍵名引數 arg 為附加引數 lua通過全域性變數keys和ar 獲取鍵名引數和附加引數,如下 local k1 keys 1 local feild ...

管理Redis程序的Shell指令碼

下面是乙個 shell 指令碼,用於管理 redis 程序 啟動,停止,重啟 這個指令碼可供參考。bin sh redis this script starts and stops the redis server daemon chkconfig 85 15 description redis i...

shell指令碼之redis自動安裝

bin bash yum install cpp binutils glibc kernheaders glibc common glibc devel gcc make wget 安裝依賴庫 wget if f root redis 4.0.1.tar.gz then tar zxvf redis...