database resource_error ai_generated partial

redis.exceptions.ResponseError: 错误:命令队列已满

redis.exceptions.ResponseError: ERR command queue is full

ID: database/redis-command-queue-full

其他格式: JSON · Markdown 中文 · English
80%修复率
83%置信度
1证据数
2024-02-14首次发现

版本兼容性

版本状态引入弃用备注
Redis 6.2 active
Redis 7.0 active
Redis 7.2 active

根因分析

Redis 服务器的命令队列已达到最大容量(由 client-output-buffer-limit 控制),导致来自客户端的新命令被拒绝。

English

The Redis server's command queue has reached its maximum capacity (controlled by client-output-buffer-limit), causing new commands from the client to be rejected.

generic

官方文档

https://redis.io/docs/latest/develop/reference/clients/

解决方案

  1. Increase the client output buffer limit for the relevant client type (e.g., normal) in redis.conf:
    client-output-buffer-limit normal 0 0 0
    Then restart Redis or send CONFIG SET command.
  2. Reduce the number of pipelined commands sent by the client, or batch them more efficiently to prevent queue buildup.

无效尝试

常见但无效的做法:

  1. Restarting the Redis server without changing buffer limits 90% 失败

    The queue resets temporarily but fills up again under the same load; the error returns.

  2. Increasing maxmemory to allow more memory 85% 失败

    maxmemory does not affect command queue limits; it controls total memory usage.