php
network_error
ai_generated
true
RedisException:连接到 127.0.0.1:6379 时读取错误,位于 /var/www/app/src/Cache/RedisCache.php 第 15 行
RedisException: read error on connection to 127.0.0.1:6379 in /var/www/app/src/Cache/RedisCache.php:15
ID: php/redis-connection-read-error
80%修复率
85%置信度
1证据数
2024-03-22首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| PHP 8.1 | active | — | — | — |
| PHP 8.2 | active | — | — | — |
| PHP 8.3 | active | — | — | — |
| Redis 6.2 | active | — | — | — |
| Redis 7.0 | active | — | — | — |
根因分析
Redis 服务器突然关闭了连接,通常是由于超时设置、内存压力或网络不稳定。
English
The Redis server closed the connection abruptly, often due to timeout settings, memory pressure, or network instability.
官方文档
https://github.com/phpredis/phpredis#readme解决方案
-
Increase the Redis server's timeout setting (timeout 0) in redis.conf to prevent idle connections from being closed.
-
Implement a retry mechanism in PHP with exponential backoff when a RedisException is caught.
无效尝试
常见但无效的做法:
-
90% 失败
Increasing PHP's default_socket_timeout in php.ini does not affect Redis socket timeouts, which are handled separately.
-
75% 失败
Restarting only PHP-FPM without restarting Redis may not help if the Redis server itself is overloaded or has a high memory usage.
-
65% 失败
Disabling persistence (redis.persistent) may reduce the frequency but does not address the root cause of connection drops.