Redis报错:'Connection closed' in [no active file] on line 0,解决办法
问题:
今天执行PHP发现一个错误,提示如下:
Fatal error: Uncaught exception ‘RedisException’ with message ‘Connection closed’ in [no active file] on line 0
发现问题出在session上,我的session是放在redis上
普遍的答案不一定正确
在网上搜到大多是说:
socket链接超时了,设置php.ini的socket链接时间即可
ini_set('default_socket_timeout', -1);
产生两个疑问:
default_socket_timeout是做什么的?
default_socket_timeout的值设置多大才合适
对于第一个问题,default_socket_timeout是设置php与socket的链接时间,如果连接的时间超过限制,PHP会自动跳出,不再继续执行。
那么这个值设置多大合适呢,默认是60,有人建议是-1,我认为不应该这样,socket只有在出现问题的时候才会不停的去连接导致超过了时间,这不是将时间改多改少的问题,而是说socket连接的源头出了问题。
自己寻找解决办法:
打开终端,进入redis失败,提示如下:
$ redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
说明redis没有启动,重新启动socket:
$ sudo redis-server /etc/redis.conf
再次连接OK,PHP执行也正常了。
为什么会出现这样的问题:
大致估计是内存占用过高,redis自己挂了,详细待有时间查看日志吧
原文链接:http://levi.cg.am/?p=3117
今天执行PHP发现一个错误,提示如下:
Fatal error: Uncaught exception ‘RedisException’ with message ‘Connection closed’ in [no active file] on line 0
发现问题出在session上,我的session是放在redis上
普遍的答案不一定正确
在网上搜到大多是说:
socket链接超时了,设置php.ini的socket链接时间即可
ini_set('default_socket_timeout', -1);
产生两个疑问:
default_socket_timeout是做什么的?
default_socket_timeout的值设置多大才合适
对于第一个问题,default_socket_timeout是设置php与socket的链接时间,如果连接的时间超过限制,PHP会自动跳出,不再继续执行。
那么这个值设置多大合适呢,默认是60,有人建议是-1,我认为不应该这样,socket只有在出现问题的时候才会不停的去连接导致超过了时间,这不是将时间改多改少的问题,而是说socket连接的源头出了问题。
自己寻找解决办法:
打开终端,进入redis失败,提示如下:
$ redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
说明redis没有启动,重新启动socket:
$ sudo redis-server /etc/redis.conf
再次连接OK,PHP执行也正常了。
为什么会出现这样的问题:
大致估计是内存占用过高,redis自己挂了,详细待有时间查看日志吧
原文链接:http://levi.cg.am/?p=3117