hello:
在lua-resty-redis库中:
location /test {
content_by_lua_block {
local ok,err
local red,err=redis:new()
red:set_timeout(1000)
ok,err=red:connect("127.0.0.1",6379)
red:set("dog","animal")
ok,err=red:set_keepalive(10000,100)
}
}
这里有几个问题请求下:
1 看了下red:new,是调用ngx.socket.tcp()生成了一个cosocket对象
2 red:set_keepalive 在这个cosocket对象上执行了 keepalive的操作
我的疑惑是:
1 一条连接和cosocket不是绑定的么?cosocket的底层实现是不是socket fd呀?
2 再来一次请求的话,又要生成新的red:new,cosocket实例,那么如何还可以复用连接了?
可能是之前没接触过连接池这个东西,在我的印象里,一条tcp连接是和两个(peer)socket相关的,不清楚连接池这里是如何实现的,望科普。。。