Hello!
2014-12-29 18:13 GMT-08:00 needpy john:
> 搭车问下,这个超时是nginx setkeepalive_timeout
> 配置吧?
不是。我前面说的是通过 cosocket 的 settimeout()(或者 set_timeout)设置的超时保护。
> 我和楼主类似,不过连的是后端的redis服务器,建立连接后由于操作的是zrange 有序集合比较大,耗时大约19s,就会报超时 错误,而且
> zrange返回的是nil值而不是一个表。如果按连接上有数据传输不会发生超时啊?不知道原因
>
29s 的 redis 操作是毁灭性的,因为 redis 是单线程的服务器,如果费时的单次操作会阻塞此 29s 以内所有的其他请求和其他连接。
redis 自身的这个延时会包含在 receive timeout
的时间里,因为从客户端的角度,是无法区分服务器自身的计算延时和网路上的传输延时的,二者是合在一起的,都算作客户端的“接收延时”。
Regards,
-agentzh