Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
redis.call/lua中的动态参数数_Lua_Redis - Fatal编程技术网

redis.call/lua中的动态参数数

redis.call/lua中的动态参数数,lua,redis,Lua,Redis,我想从lua脚本中通过多个匹配进行搜索,但“匹配”的数量取决于脚本需要-我需要搜索以任何顺序匹配所有单词(在本例中为“aa”、“bb”)的键,并且单词数量可能更多(或更少) 如果其固定,则其工作方式如下: local result = redis.call("SCAN", 0, "MATCH", "*aa*", "MATCH", "*bb*") 如何使其动态化,在哪里可以添加所需的匹配项? 比如: local match={} for i=1, #ARGV do table.insert(

我想从lua脚本中通过多个匹配进行搜索,但“匹配”的数量取决于脚本需要-我需要搜索以任何顺序匹配所有单词(在本例中为“aa”、“bb”)的键,并且单词数量可能更多(或更少) 如果其固定,则其工作方式如下:

local result = redis.call("SCAN", 0, "MATCH", "*aa*", "MATCH", "*bb*")
如何使其动态化,在哪里可以添加所需的匹配项? 比如:

local match={}
for i=1, #ARGV do
  table.insert(match, "MATCH")
  table.insert(match, "*"..ARGV[i].."*")
end
local result = redis.call("SCAN", 0, match)
…我试着把它放到字符串中,但出现了一个错误:

local match="SCAN 0 MATCH *aa* MATCH *bb*"
local result = redis.call(match)
从Lua脚本调用未知的Redis命令

正在将
中的匹配(“扫描”,0,匹配)
作为表传递,您需要将其解压缩。
类似的东西

local match={}
match[1] = "SCAN"
match[2] = 0

for i=2, #ARGV do
   match[#match+1] = "MATCH"
   match[#match+1] = "*"..ARGV[i].."*"
end

redis.call(unpack(match))