database
resource_error
ai_generated
partial
redis.exceptions.ResponseError: 错误:命令队列已满
redis.exceptions.ResponseError: ERR command queue is full
ID: database/redis-command-queue-full
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.
官方文档
https://redis.io/docs/latest/develop/reference/clients/解决方案
-
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.
-
Reduce the number of pipelined commands sent by the client, or batch them more efficiently to prevent queue buildup.
无效尝试
常见但无效的做法:
-
Restarting the Redis server without changing buffer limits
90% 失败
The queue resets temporarily but fills up again under the same load; the error returns.
-
Increasing maxmemory to allow more memory
85% 失败
maxmemory does not affect command queue limits; it controls total memory usage.