gpt4 book ai didi

lua - 使用LUA脚本查询列表时出现错误

转载 作者:可可西里 更新时间:2023-11-01 11:15:09 24 4
gpt4 key购买 nike

当我使用 Lua 脚本查询列表时,如果列表不为空,我会得到正确的结果。但如果列表为空,则会出错。

吹是我的脚本:

const char * sLuaQueryServers = "local key_list = redis.call('KEYS',
KEYS[1]); return(redis.call('MGET', unpack(key_list)))";

我传递了“serverlist:*”作为键,它成功返回了列表中的服务器。

但是如果redis中没有服务器,我会得到以下错误:

ERR Error running script (call to 
f_88620231033e13635dc3181f2947a740f91012dc): @user_script:1: @user_script:
1: Wrong number of args calling Redis command From Lua script
"

请帮忙。

最佳答案

对于您的问题,在调用 MGET 之前添加检查列表是否为空,例如:

local key_list = redis.call('KEYS', KEYS[1])
if #key_list > 0 then
return(redis.call('MGET', unpack(key_list)))
else
return nil
end

注意#1:Lua 中不需要分号

注意 #2:除了调试之外,不推荐使用 KEYS

注意 #3:您正在使用 KEYS 表来传递参数,但是由于您的脚本正在运行 KEYS(命令),所以这确实是一个有争议的问题

关于lua - 使用LUA脚本查询列表时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51493353/

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