Redis eval命令

2019-10-16 22:51:12

Redis eval命令是使用Lua直譯器來評估計算指令碼。EVAL的第一個引數是一個Lua5.1指令碼。該指令碼並不需要定義一個Lua函式(不應該)。這僅僅是一個Lua程式,將在Redis伺服器的上下文中執行。 EVAL的第二個引數如下表示Redis的鍵名的指令碼(從第三個引數開始)引數的個數。這個引數可以通過Lua中使用鍵全域性變數在一個基於陣列的形式進行存取(因此KEYS[1],KEYS[2],...)。所有其他引數不應該代表的鍵名,並且可以通過Lua使用ARGV全域性變數存取,非常類似於用key一樣(所以ARGV[1],ARGV[2],...)。

語法

Redis eval命令的基本語法如下所示:

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...] 

範例

redis 127.0.0.1:6379> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"