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

Also available as: JSON · Markdown · 中文
80%Fix Rate
85%Confidence
1Evidence
2024-03-22First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
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#readme

Workarounds

  1. 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.
  2. 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.

中文步骤

  1. Increase the Redis server's timeout setting (timeout 0) in redis.conf to prevent idle connections from being closed.
  2. Implement a retry mechanism in PHP with exponential backoff when a RedisException is caught.

Dead Ends

Common approaches that don't work:

  1. 90% fail

    Increasing PHP's default_socket_timeout in php.ini does not affect Redis socket timeouts, which are handled separately.

  2. 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.

  3. 65% fail

    Disabling persistence (redis.persistent) may reduce the frequency but does not address the root cause of connection drops.