作为redis参数的Lua表

作为redis参数的Lua表,lua,redis,lua-table,Lua,Redis,Lua Table,我正试图从Lua脚本对redis进行MSETNX调用。 如果一些键不存在,我需要设置它们的空值 我试着这样做: redis.call('MSETNX',KEYS)使用传递给脚本的键{'key1',''key2','} 但这不起作用,因为这个调用需要单独的键和值作为参数传递,而不是一个表 这项工作: redis.call('MSETNX','key1','key2','') 但是KEYS变量是动态的,所以我不能这样做 如何调用MSETNX,而不必单独明确列出每个键 --编辑-- 是否可以解包并“混

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

我试着这样做:

redis.call('MSETNX',KEYS)
使用传递给脚本的键
{'key1',''key2','}

但这不起作用,因为这个调用需要单独的键和值作为参数传递,而不是一个表

这项工作:

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

但是KEYS变量是动态的,所以我不能这样做

如何调用
MSETNX
,而不必单独明确列出每个键

--编辑--

是否可以
解包
并“混合”值


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

使用表上的Lua的
解包
,即:

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

旁注:不要使用
作为表名,因为Redis使用该表向脚本传递键名。

我想您可能误解了我的问题。问题不在于如何在Redis中运行它,而在于如何将我的表元素“分解”为单独的参数。就是这样!解包成功了!非常感谢你!顺便说一句,你介意看看我的编辑吗?旁注:我想举个例子,我没有在Lua脚本中分配KEYS变量,但是谢谢你的警告。我不知道这样的事情,但是你可以很容易地在表中迭代,在每个条目后插入空格,然后把所有的东西都拆开。注意:你应该更仔细地举出例子——人们可能有一天会在这里试图学习,可能会被误导;)你是对的,我编辑了我的问题,试图避免任何混乱。谢谢你抽出时间!