这是我的配置:
local rc = require("resty.redis.connector").new({
connect_timeout = 50,
read_timeout = 5000,
keepalive_timeout = 30000
})
local redis, err1 = rc:connect({
url = "redis://127.0.0.1:6379",
})
if not redis then
ngx.say( err1)
else
ngx.say('connection fine')
end
local ok, err = rc:set_keepalive(redis)
我收到此错误:
[错误] 4044#0:* 1068056尝试在关闭的套接字上发送数据: u:00007F2BABA05D48,c:0000000000000000,ft:0 eof:0,客户端:MY IP, 服务器:,请求:“ GET / foo HTTP / 1.1”,主机:“ SERVER IP”
当我禁用keepalive设置时,出现此错误:
[错误] 4147#0:* 1089971 lua tcp套接字连接超时,当 连接到127.0.0.1:6379,
当我注释掉与rc:set_keepalive相关的行时,它适用于单个请求,并且崩溃于100个请求。
在大量需求下连接Lua中的Redis的最佳做法是什么?
答案 0 :(得分:1)
在Lua中使用Redis的最流行方法是lua-resty-redis
关于unconfined_t
使用set_timeouts(connect_timeout, send_timeout, read_timeout)
方法时,我已经经历过了。
当我切换到set_timeout(time)
方法时,错误消失了。
我还没有使用过lua-resty-redis-connector(我假设您在代码中使用过)。
答案 1 :(得分:0)
您的代码不正确。
ok, err
。将ok
的值传递给set_keepalive
毫无意义。RTFM,请对不起,您的所有代码看起来都一团糟。