php
network_error
ai_generated
true
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%Fix Rate
85%Confidence
1Evidence
2024-03-22First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| PHP 8.1 | active | — | — | — |
| PHP 8.2 | active | — | — | — |
| PHP 8.3 | active | — | — | — |
| Redis 6.2 | active | — | — | — |
| Redis 7.0 | active | — | — | — |
Root Cause
The Redis server closed the connection abruptly, often due to timeout settings, memory pressure, or network instability.
generic中文
Redis 服务器突然关闭了连接,通常是由于超时设置、内存压力或网络不稳定。
Official Documentation
https://github.com/phpredis/phpredis#readmeWorkarounds
-
85% success Increase the Redis server's timeout setting (timeout 0) in redis.conf to prevent idle connections from being closed.
Increase the Redis server's timeout setting (timeout 0) in redis.conf to prevent idle connections from being closed.
-
80% success Implement a retry mechanism in PHP with exponential backoff when a RedisException is caught.
Implement a retry mechanism in PHP with exponential backoff when a RedisException is caught.
中文步骤
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.
Dead Ends
Common approaches that don't work:
-
90% fail
Increasing PHP's default_socket_timeout in php.ini does not affect Redis socket timeouts, which are handled separately.
-
75% fail
Restarting only PHP-FPM without restarting Redis may not help if the Redis server itself is overloaded or has a high memory usage.
-
65% fail
Disabling persistence (redis.persistent) may reduce the frequency but does not address the root cause of connection drops.