2017-10-17 29 views
0

我目前在我的代碼中執行2個步驟,並且我意識到我可以在LUA腳本中組合兩個步驟。如何安全地從SPOP獲取值並測試值或爲零

我做:

  1. SPOP我一套
  2. 調用LUA腳本做其他事情。

來自步驟#1的值被傳遞並存儲在局部變量ele中。

我的LUA腳本的樣子:

local ele = KEYS[1] 
local p = KEYS[2] 
local u = KEYS[3] 
if redis.call("SISMEMBER", u, ele) == 0 then 
    .. 
    .. 
    return "OK" 
else 
    return "EXISTS" 
end 

我怎麼能說SPOP從我的LUA腳本中,並將其存儲在一個變量。

我需要做的:

local popped = redis.call("SPOP", "my-set-here") 

我不知道是否會工作,但我要檢查它是否爲空或有一個值,我猜。只是想確保我遵循最佳做法。

順便說一句,作爲一個附註,什麼是創建和測試lua腳本的最快方法?

回答