我正在使用redis
和nodejs进行开发。版本:"redis": "^3.1.2"
当我的服务器连接到redis时,我会收到以下错误:
ERR wrong number of arguments for 'auth' command
我猜这与URL有关,它看起来像这样:
redis://h:<password>@<url>:<port>
我的 Redis 托管在 Heroku 上,我无法更改 URL。而且我不知道如何使它工作。有任何想法或解决方案将不胜感激。
我正在使用redis
和nodejs进行开发。版本:"redis": "^3.1.2"
当我的服务器连接到redis时,我会收到以下错误:
ERR wrong number of arguments for 'auth' command
redis://h:<password>@<url>:<port>
我的 Redis 托管在 Heroku 上,我无法更改 URL。而且我不知道如何使它工作。有任何想法或解决方案将不胜感激。
redis://h:<password>@<url>:<port>
将不起作用,并抛出 ERR wrong number of arguments for 'auth' command
错误。redis://:<password>@<url>:<port>
可以使用,即:从 URL 中删除用户名。
注意:在 <password>
前面加上 ":"。redis://h:<password>@<url>:<port>
可以使用。redis://<username>:<password>@<url>:<port>
(当 Redis ACL 中的用户名设置为自定义用户名时)和 redis://<password>@<url>:<port>
都可以使用。redis://h:<password>@<url>:<port>
的连接 URL。这个 "h" 是一个虚假/占位符用户名,因为一些客户端(例如:node-redis)无法正确处理 URL 中的空用户名。在 Redis 6 中发布 ACL 后,客户端开始支持使用 2 个参数(用户名和密码)的新 AUTH 命令。尝试将 h 用户名传递给 AUTH 的客户端将在 Redis 版本 4 和 5 上导致上述错误。Reference
promise-redis
(目前不建议使用)在依赖解析中包含了node-redis
的*
版本。我们现在正在运行Redis 5.0,所以在一个完全无关的更改中从3.0更新到3.1破坏了带有用户名的AUTH命令。感谢您提供的精彩解释! - Matt Forsterredis://<password>@<url>:<port>
可以使用,即从URL中删除用户名。应该是:解决方案:redis://:<password>@<url>:<port>
可以使用,即从URL中删除用户名。您需要在密码之前加上 :
。 - shernshiouredis://:<password>@<url>:<port>
对我很有效。 - OBI PASCAL BANJUARE