Lua table 作为 redis 参数

Lua table as redis argument

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

我试过这样做:

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

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

这个有效:

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

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

如何调用 MSETNX 而不必单独显式列出每个键?

-- 编辑--

是否可以 unpack 和“混合”值?

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

在table上使用Lua的unpack,即:

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

旁注:不要使用 KEYS 作为 table 的名称,因为 Redis 使用 table 将键名传递给脚本。