如何安全地从SPOP获取值并测试值或null

时间:2017-10-17 02:11:44

标签: lua redis

我目前在代码中执行了两个步骤,我意识到我可以在LUA脚本中组合这两个步骤。

我在做:

  1. 我的套装上的SPOP
  2. 调用lua脚本来做其他事情。
  3. 传递步骤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
    

    如何从我的lua脚本中调用SPOP并将其存储在变量中。

    我需要这样做:

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

    我不确定这是否有效,但是我必须检查它是否为空或者我猜是否有值。只是想确保我遵循最佳实践。

    BTW,作为旁注,创建和测试lua脚本的最快方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容检查popped的非犯罪行为的价值:

if popped then
  -- do something
end

至于开发Redis Lua脚本,请看看Zerobrane的集成:

披露:我参与了整合工作;)