Lua table作为redis参数

我正在尝试使用Lua脚本从redis进行MSETNX调用。 我需要如果它们不存在,则设置一些带有空值的键。

我尝试这样做:

redis.call('MSETNX',KEYS) 将 KEYS {'key1','','key2',''} 传递给脚本。

但是,由于此调用需要作为参数传递单个键和值,而不是表,因此这种方法不起作用。

这个有效:

redis.call('MSETNX','key1','','key2','')

但是 KEYS 变量是动态的,因此我无法这样做。

如何调用 MSETNX 而无需明确列出每个键?

-- 编辑 --

是否可以 unpack 并 "混合" 值?

我可以传递 KEYS = {'key1','key2'}unpack 它:'key1','','key2',''?谢谢!

点赞
用户3160475
用户3160475

使用Lua的unpack函数对表进行操作,例如:

redis.call('MSETNX', unpack(KEYS))

附注:不要使用KEYS作为表的名称,因为该表被Redis用于将键名传递给脚本。

2016-12-07 17:03:38