HMGET在lua-resty-redis中有一个数组

iRy*_*ell 3 lua redis

我想替换这个命令:

red:hmget('item', 'item:1', 'item:2')
Run Code Online (Sandbox Code Playgroud)

有类似的东西:

local test = {'item:1', 'item:2'}
red:hmget('item', test)
Run Code Online (Sandbox Code Playgroud)

但是,(string expected, got table)当我尝试这个时,我收到了一个错误.我如何在Lua for Redis中格式化这个?

Rya*_*ein 5

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

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

unpack是一个解开数组样式表的函数,就好像你像使用一组参数一样使用它.它有点类似于您可能在其他语言中找到的splat运算符.

> =unpack{'item:1', 'item:2'}
item:1  item:2
Run Code Online (Sandbox Code Playgroud)