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.