Lua 表作为 redis 参数

alt*_*vic 2 lua redis lua-table

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

我试着这样做:

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

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

这有效:

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

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

如何MSETNX在不必单独明确列出每个键的情况下调用?

- 编辑 -

是否可以unpack“混合”值?

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

Ita*_*ber 5

unpack表上使用Lua的,即:

redis.call('MSETNX', unpack(KEYS))
Run Code Online (Sandbox Code Playgroud)

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