Redis:错误 'auth' 命令的参数数量错误
Redis: ERR wrong number of arguments for 'auth' command
我正在使用 redis
和 nodejs。版本:"redis": "^3.1.2"
当我的服务器连接到 redis 时,出现以下错误:
ERR wrong number of arguments for 'auth' command
我猜它与 URL 有关,它看起来像这样:
redis://h:<password>@<url>:<port>
我的 redis 由 Heroku 托管,我无法更改 URL。并且不知道我怎样才能让它发挥作用。任何 ideas/solutions 非常感谢。
Redis 版本 < 6.0.0 和 node-redis >=3.1.0 ,redis://h:<password>@<url>:<port>
将不起作用并抛出 ERR wrong number of arguments for 'auth' command
.
解决方案:redis://<password>@<url>:<port>
有效,即:从 URL.
中删除用户名
这应该可以解决您面临的问题。
其他版本:
Redis 版本 < 6.0.0 且 node-redis <=3.0.2,redis://h:<password>@<url>:<port>
有效。
Redis Version >= 6.0.0 and node-redis(any version), redis://<username>:<password>@<url>:<port>
(当redis ACL中的用户名设置为自定义用户名时)和redis://<password>@<url>:<port>
都可以。
原因是:
node-redis 根据 releasenote.
进行了更改以支持 Redis-6
Redis-6 支持 ALC 中的用户名。在 v6 之前,Redis 没有用户的概念,唯一的认证策略是单一的登录密码。 Reference
每当您将 Redis 插件附加到 Heroku 容器时,都会设置环境变量 REDIS_URL 并且值为连接 URL 格式:redis://h:<password>@<url>:<port>
。这个“h”是一个 fake/dummy/placeholder 用户名,因为某些客户端(例如:node-redis)无法正确处理 URL 中的空白用户名。在 Redis 6 中发布 ACL 后,客户端开始支持使用 2 个参数(用户名和密码)的新 AUTH 命令。尝试将 h 用户名传递给 AUTH 的客户端将导致 Redis 版本 4 和 5 出现上述错误。Reference
我正在使用 redis
和 nodejs。版本:"redis": "^3.1.2"
当我的服务器连接到 redis 时,出现以下错误:
ERR wrong number of arguments for 'auth' command
我猜它与 URL 有关,它看起来像这样:
redis://h:<password>@<url>:<port>
我的 redis 由 Heroku 托管,我无法更改 URL。并且不知道我怎样才能让它发挥作用。任何 ideas/solutions 非常感谢。
Redis 版本 < 6.0.0 和 node-redis >=3.1.0 ,redis://h:<password>@<url>:<port>
将不起作用并抛出 ERR wrong number of arguments for 'auth' command
.
解决方案:redis://<password>@<url>:<port>
有效,即:从 URL.
这应该可以解决您面临的问题。
其他版本:
Redis 版本 < 6.0.0 且 node-redis <=3.0.2,redis://h:<password>@<url>:<port>
有效。
Redis Version >= 6.0.0 and node-redis(any version), redis://<username>:<password>@<url>:<port>
(当redis ACL中的用户名设置为自定义用户名时)和redis://<password>@<url>:<port>
都可以。
原因是:
node-redis 根据 releasenote.
进行了更改以支持 Redis-6Redis-6 支持 ALC 中的用户名。在 v6 之前,Redis 没有用户的概念,唯一的认证策略是单一的登录密码。 Reference
每当您将 Redis 插件附加到 Heroku 容器时,都会设置环境变量 REDIS_URL 并且值为连接 URL 格式:
redis://h:<password>@<url>:<port>
。这个“h”是一个 fake/dummy/placeholder 用户名,因为某些客户端(例如:node-redis)无法正确处理 URL 中的空白用户名。在 Redis 6 中发布 ACL 后,客户端开始支持使用 2 个参数(用户名和密码)的新 AUTH 命令。尝试将 h 用户名传递给 AUTH 的客户端将导致 Redis 版本 4 和 5 出现上述错误。Reference