0
我有一個包含我想執行服務器端處理密鑰的SET SPOP和SADD到另一組。如何從一組使用Lua
我想SPOP和項目,然後也薩德另一組。
因此,我將有以下2套:
1. Source
2. Processing
我不能使用SUNIONSTORE#1 POP和存儲在#2,因爲我需要把所有我所處理的關鍵。
我想這個過程是原子的,我怎麼能做到這一點用LUA?
另外,如果我想SPOP超過1個鍵,我還可以用LUA這個?
更新
redis.replicate_commands()
local s = KEYS[1]
local p = KEYS[2]
local u = KEYS[3]
local ele = redis.call("SPOP", s)
if redis.call("SISMEMBER", ele, u) == 0 then
redis.call("SADD", p, ele)
redis.call("SADD", u, ele)
return ele
else
return "EXISTS"
end
多少開銷是有調用LUA腳本與計劃舊的Redis命令?它有意義嗎? – Blankman
你應該自己測試一下,但是一般來說懲罰很低。確保你使用'EVALSHA'。 –
看到我更新的Q,我得到的錯誤'''(錯誤)ERR錯誤運行腳本(調用f_91aac8622d7da23bbbc2354cbbf547755d85f15f):@user_script:1:user_script:1:試圖調用場 'replicate_commands'(一個零值)' '' – Blankman