在lua-resty-redis中,使用数组执行HMGET操作。

我想要替换这个命令:

red:hmget('item', 'item:1', 'item:2')

使用类似这样的命令:

local test = {'item:1', 'item:2'}
red:hmget('item', test)

但是,当我尝试时,我得到一个错误 (string expected, got table)。我应该如何在 Lua 中为 Redis 格式化此命令?

点赞
用户828255
用户828255

根据您使用的 Lua 版本,您需要使用 unpack

  • Lua 5.1 red:hmget('item', unpack(test))
  • Lua 5.2 red:hmget('item', table.unpack(test))

unpack 是一个函数,它像使用参数集一样展开数组样式的表格。它有点类似于您可能在其他语言中找到的扩展操作符。

> =unpack{'item:1', 'item:2'}
item:1  item:2
2013-11-28 23:19:19