python redis 连接超时,可能是什么原因了?

2016-02-04 11:13:11 +08:00
 larkifly
redis 的日志级别是 notice ,查看 timeout 是, redis 日志没有更新,依然是启动时的日志。

重启 python 程序,又能连上了,中间 redis 没有做任何改动或者重启。

redis 和 python 程序在一个内网,不同机器。
5201 次点击
所在节点    Python
6 条回复
aisk
2016-02-04 11:43:36 +08:00
redis 当时是不是 CPU 跑满了?
thinsky
2016-02-04 11:48:09 +08:00
可能是连接数达到上限?
iyaozhen
2016-02-04 12:06:49 +08:00
应该是 redis 主动断掉了不活跃的连接。不知到你是连上 redis 进行什么操作,如果是 pub/sub 则需要在客户端连接时设置一个类似 read_timeout=-1 的东西。 PHP 的还需这样: ini_set(‘ default_socket_timeout ’, -1)。不过一般的话设置 redis timeout=0 就行了。
mckelvin
2016-02-04 15:04:10 +08:00
Redis 的原因,或者 Redis 到 Python 程序中间的网络原因(比如网络延迟)。

Python 程序用的 Redis 客户端去兼容下断线重连比较好?

另外建议给机器和 Redis 集群都加上系统指标方便查问题,比如 Redis 所在机器的 CPU, 网络, Redis 本地时延,远程时延。
larkifly
2016-02-04 15:36:03 +08:00
@aisk cpu 内存 硬盘状态都是正常的
larkifly
2016-02-04 15:37:17 +08:00
@iyaozhen timeout=0 这个已经设置了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255338

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX