gpt4 book ai didi

nginx - Redis 和 Lua 中的连接

转载 作者:可可西里 更新时间:2023-11-01 11:47:46 27 4
gpt4 key购买 nike

这是我的配置:

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)

我收到这个错误:

[error] 4044#0: *1068056 attempt to send data on a closed socket: u:00007F2BABA05D48, c:0000000000000000, ft:0 eof:0, client: MY IP, server: , request: "GET /foo HTTP/1.1", host: "SERVER IP"

当我禁用 keepalive 设置时,出现此错误:

[error] 4147#0: *1089971 lua tcp socket connect timed out, when connecting to 127.0.0.1:6379,

当我注释掉与 rc:set_keepalive 相关的行时,它适用于单个请求并在 100 个请求时崩溃。

在巨大的请求下,在 Lua 中连接到 Redis 的最佳实践是什么?

最佳答案

在 Lua 中使用 redis 的最流行方式是 lua-resty-redis

关于 [error] 4044#0: *1068056 attempt to send data on a closed socket我在使用的时候体验过set_timeouts(connect_timeout, send_timeout, read_timeout)方法。

当我切换到 set_timeout(time) 时方法错误消失了。

我没用过lua-resty-redis-connector我假设您在代码中使用了它。

关于nginx - Redis 和 Lua 中的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57124285/

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