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

其他格式: JSON · Markdown 中文 · English
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.

generic

官方文档

https://github.com/phpredis/phpredis#readme

解决方案

  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.

无效尝试

常见但无效的做法:

  1. 90% 失败

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

  2. 75% 失败

    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% 失败

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