Redis的Lua指令碼的學習

2021-09-08 13:05:40 字數 798 閱讀 8042

lua 中pairs 和 ipairs區別 參考下面例子:

1:2:

1:第一種方式

./redis-cli -h (ip) -p (port) -a (密碼) script load 「$(cat/usr/local/redis/t.lua)」

加粗部分是指令碼的位置

執行完之後返回id: 「4a0beab792acbcd11632c997b1ee3d8061a4d210」

然後想給指令碼傳keys agrv

evalsha (固定寫法)+id+鍵的數量 + 鍵名稱 + 引數

evalsha 4a0beab792acbcd11632c997b1ee3d8061a4d210 1 redis world

1:第二種方式

./redis-cli -h (ip) -p (port) -a (密碼) --eval /usr/local/redis/t.lua 1 redis , world 4

–eval引數是告訴redis-cli讀取並執行後面的lua指令碼,t.lua是指令碼的位置,後面跟著是傳給lua指令碼的引數。其中",「前的redis 是要操作的鍵,可以再指令碼中用keys[1]獲取,」,「後面的world 和4是引數,在指令碼中能夠使用ar**[1]和ar**[2]獲得。注:」,"兩邊的空格不能省略,否則會出錯

a=for i, v in pairs(a) do

print(i,v)

endredis.call(「指令」,kyes[i],ar**[i])

呼叫指令,給key設定值

redis呼叫lua指令碼

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

Redis使用lua指令碼

版本 自2.6.0起可用。時間複雜度 取決於執行的指令碼。使用lua指令碼的好處 命令格式 eval script numkeys key key arg arg 說明 簡單例項 127.0.0.1 6379 eval return ar 1 0 100 100 127.0.0.1 6379 eva...

Redis 十六 Lua指令碼

redis 提供了非常豐富的指令集,但是使用者依然不滿足,希望可以自定義擴充若干指令來完成一些特定領域的問題。redis 為這樣的使用者場景提供了 lua 指令碼支援,使用者可以向伺服器傳送 lua 指令碼來執行自定義動作,獲取指令碼的響應資料。redis 伺服器會單執行緒原子性執行 lua 指令碼...