gpt4 book ai didi

lua - redis.call/lua 参数的动态个数

转载 作者:IT王子 更新时间:2023-10-29 06:09:26 28 4
gpt4 key购买 nike

我想从 lua 脚本中通过多个 MATCH 进行搜索,但是“MATCH”的数量取决于脚本的需要——我需要搜索匹配所有单词的键(在本例中为“aa”、“bb”)任何顺序和字数可能更多(或更少)如果它修复了它的工作方式:

local result = redis.call("SCAN", 0, "MATCH", "*aa*", "MATCH", "*bb*")

我如何让它变得动态,我可以根据需要添加尽可能多的 MATCH?像这样的东西:

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)

Unknown Redis command called from Lua script

最佳答案

("SCAN", 0, match) 中的匹配项作为表格传递,您需要对其进行解压。
在这些行上有类似的东西

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))

关于lua - redis.call/lua 参数的动态个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52471270/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com