Lua指令碼如何呼叫Redis指令

2021-10-03 03:41:21 字數 901 閱讀 5083

當我們在redis中允許lua指令碼,有乙個內建變數,並且具備兩個引數:

-

redis

.call

("命令名稱"

,引數1

,引數2...

):執行指定的redis指令,執行遇到錯誤會直接返回錯誤

-redis

.pcall

("命令名稱"

,引數1

,引數2

):執行指定的redis指令,執行遇到錯誤以lua表的形式返回。

還記得redis中eval命令嗎?

eval script numbers key [key ...

] arg [arg...

]

eval執行指令碼可以接受兩個引數,key和arg,並且會內建變數(陣列格式)來接收使用者傳入的key和arg引數:

keys:用來存放key引數

ar**:用來存放key以外的引數

我們在指令碼中,可以從陣列中根據下標(lua中的陣列下標從1開始),取出使用者傳入的key和arg引數

redis.

call

("set"

,keys[1]

,ar**[1]

);

而後,我們在指令碼中可以動態指定key以及需要存放value的值:

Lua指令碼如何呼叫Redis指令

當我們在redis中允許lua指令碼,有乙個內建變數,並且具備兩個引數 redis.call 命令名稱 引數1,引數2.執行指定的redis指令,執行遇到錯誤會直接返回錯誤 redis.pcall 命令名稱 引數1,引數2 執行指定的redis指令,執行遇到錯誤以lua表的形式返回。還記得redis...

redis呼叫lua指令碼

在redis中很多基本操作都是原子操作 但是缺少事務的概念,所幸的是redis支援lua指令碼,可以利用lua指令碼實現事務特性 執行比 較對應key值大小,更新較大值 的lua指令碼 param key param time return public object updatehigherint...

golang呼叫lua指令碼

import github.com aarzilli golua lua 2 呼叫lua指令碼的幾個重要函式 l lua.newstate 建立乙個lua虛擬機器 l.dofile 設定要呼叫的lua檔案 l.getfield lua.lua globalsindex,獲取lua指令碼的符號 l.c...