ERR wrong number of arguments for command: Wrong number of arguments for command(命令的参数数量错误)
Redis含义
发送的 Redis 命令参数少于或多于预期。由于不满足语法,命令未被处理即被拒绝。
原因
缺少/多出参数(例如只写了 SET key 而不是 SET key value);变量以空值/undefined 传入;以错误的参数顺序调用命令;或客户端库中数组/参数展开(spread)有误。在动态构造的命令中很常见。
解决方法
检查命令的正确签名(例如 SET key value [options]);查阅官方命令参考。在客户端代码中,确认参数(尤其是来自数组的参数)不为空/未缺失。如果根据用户输入构造命令,事先校验参数数量。在 redis-cli 中手动尝试该命令,确认预期的参数数量。
同一数据库的其他条目
- DENIED Redis is running in protected modeRedis is running in protected mode(Redis 正以保护模式运行)
- ERR Can't execute '<cmd>': only (P|S)SUBSCRIBE / (P|S)UNSUBSCRIBE / PING / QUIT / RESET are allowed in this contextCommand not allowed in subscribe context(在订阅上下文中不允许该命令)
- ERR SELECT is not allowed in cluster modeSELECT is not allowed in cluster mode(集群模式下不允许 SELECT)
- ERR Background save already in progressBackground save already in progress(后台保存已在进行中)
- ERR bit offset is not an integer or out of rangeBit offset is not an integer or out of range(位偏移量不是整数或超出范围)
- ERR Protocol error: invalid multibulk lengthProtocol error: invalid multibulk length(协议错误:无效的 multibulk 长度)
- ERR Number of keys can't be greater than number of argsEVAL/EVALSHA: numkeys exceeds argument count(EVAL/EVALSHA:numkeys 超过参数数量)