我使用 Redis 构建了一个 IOS SNS 应用程序(用于 restful api)。随着越来越多的用户使用它,错误发生了。
它抛出:
Uncaught exception 'RedisException' with message 'read error on connection'
in /data1/www/htdocs/11/iossns/Model/Core/Redis.php
我不知道如何解决这个问题。
你能帮我吗?
谢谢!
您使用的是什么 PHP-to-Redis 库?这是来自 Redis 的官方列表。你的网络服务器是什么?(Apache、nginx 等)PHP 是如何运行的?(CGI、FPM、mod_php 等)
这是 phpredis 中相同异常消息的线程。事实证明 phpredis 目前不支持与 php-fpm 的持久连接。phpredis 2.2.3 版有一些连接处理更改,可能会降低问题的频率。
我建议检查您的 Redis 连接器配置以...</p>
您还可以考虑对default_socket_timeout
php.ini 进行调整(通常会增加)。
在 Ubuntu 20.04 中,我发现 systemctl 正在尝试重新启动服务,因为它找不到 /run/redis/redis-server.pid redis-server.service: Failed with result 'timeout'。
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