PHP Redis错误:未捕获的异常'RedisException'

时间:2012-04-10 06:38:57

标签: php redis

我使用Redis构建IOS SNS应用程序(用于restful api)。随着越来越多的用户使用它,发生了错误。

它抛出:

Uncaught exception 'RedisException' with message 'read error on connection' 
in /data1/www/htdocs/11/iossns/Model/Core/Redis.php

我不知道如何解决这个问题。

你能帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您使用的是什么PHP-to-Redis库? Here’s the official list from Redis。你的网络服务器是什么? (Apache,nginx等)PHP如何运行? (CGI,FPM,mod_php等)

Here’s a thread for the same exception message in phpredis。事实证明,phpredis目前不支持与php-fpm的持久连接。 phpredis的2.2.3版本有一些连接处理更改可能会降低您的问题的频率。

我建议您将Redis连接器配置检查为...

  1. 禁用持久连接
  2. 启用连接重试
  3. 增加日志详细程度
  4. 您也可以考虑在php.ini中调整(通常增加)default_socket_timeout

答案 1 :(得分:0)

在我的 Ubuntu 20.04 中,我发现 systemctl 正在尝试重新启动服务,因为它找不到 /run/redis/redis-server.pid redis-server.service:因结果“超时”而失败。

Feb 25 17:51:09 artamredis systemd[1]: Failed to start Advanced key-value store.
Feb 25 17:51:09 artamredis systemd[1]: redis-server.service: Scheduled restart job, restart counter is at 18.
Feb 25 17:51:09 artamredis systemd[1]: Stopped Advanced key-value store.
Feb 25 17:51:09 artamredis systemd[1]: Starting Advanced key-value store...
Feb 25 17:51:09 artamredis systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after start: Operation not permitted

为了解决它在/etc/redis/redis.conf文件中找到

pidfile /var/run/redis_6379.pid

并更改为

pidfile /run/redis/redis-server.pid