我正在尝试通过Lua脚本对redis进行MSETNX
调用。
如果它们不存在,我需要设置一些带空值的键。
我尝试过这样做:
带有KEYSredis.call('MSETNX', KEYS)
的 {'key1', '', 'key2', ''}
传递给脚本。
但这不起作用,因为此调用需要单独的键和值作为参数传递,而不是表。
这有效:
redis.call('MSETNX', 'key1', '', 'key2', '')
但是KEYS变量是动态的,所以我不能这样做。
如何在不必单独明确列出每个密钥的情况下调用MSETNX
?
- 编辑 -
是否可以unpack
和“混合”值?
我可以将KEYS = {'key1', 'key2'}
和unpack
传递给:'key1', '', 'key2', ''
吗?谢谢!
答案 0 :(得分:3)
在桌子上使用Lua的unpack
,即:
redis.call('MSETNX', unpack(KEYS))
附注:不要使用KEYS
作为您的表名,因为Redis使用该表将密钥名称传递给脚本。