无法将变量传递给 Lua 中的 Redis

我正在使用 Redis Ruby Gem 并尝试在 Lua 中完成一些服务器端脚本,但我无法将其中一个变量转换为所需的字符串格式。

我的变量在其自然形式下为: v = 495584087797551105

如果我传递 **v = '495584087797551105'**(注意单引号),一切都很好,我得到了所需的输出 1。

print redis.eval(" local test
                   local v
                   v = '495584087797551105'
                   test = redis.call('sismember', 'testkey',v)
                   return test")
**返回"1"**

然而,我无法将 495584087797551105 转换为 **'495584087797551105'**。我尝试过使用 tostring(v) 和 string.format('%d',v) 两种方法,但两种方法都返回错误的结果 0。

print redis.eval(" local test
                   local v
                   local b

                   v = 495584087797551105
                   b = tostring(v)             --尝试 1
                   b = string.format('%d',v)   --尝试 2
                   test = redis.call('sismember', 'testkey',b)
                   return test")
**返回"0"**

我已经尝试在 eval 语句中使用双引号,但 Ruby 不喜欢它并抛出错误。看起来必须有一个简单的解决方案。

点赞