【发布时间】:2022-01-04 17:06:00
【问题描述】:
我没有获得使用 redis auth 的 redis node.js 文档。
每个例子:
var redis = require("redis"),
client = redis.createClient();
// This command is magical. Client stashes the password and will issue on every connect.
client.auth("somepass");
在我的代码中,我有以下内容:
var redis = require("redis");
r = redis.createClient(6379,'xxx.xxx.xxx.xxx');
r.auth("yyyyyyyy");
app.get('/', function(req, res){
r.set("foo", 'bar');
res.writeHead(200, {'Content-Type': 'image/gif'});
res.end('Hello');
});
这是我得到的错误:
Express server listening on port 8070 in development mode
/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/index.js:468
throw callback_err;
^
Error: Auth error: Error: ERR Client sent AUTH, but no password is set
at Command.callback (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/index.js:163:43)
at RedisClient.return_error (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/index.js:464:25)
at HiredisReplyParser.<anonymous> (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/index.js:253:14)
at HiredisReplyParser.emit (events.js:67:17)
at HiredisReplyParser.execute (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/lib/parser/hiredis.js:41:18)
at RedisClient.on_data (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/index.js:440:27)
at Socket.<anonymous> (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/redis/index.js:70:14)
at Socket.emit (events.js:67:17)
at TCP.onread (net.js:367:14)
[7]+ Killed node app.js 8070
那么,正确的身份验证方法是什么?
【问题讨论】:
-
EADDRINUSE 是一个 http 的东西 - 你确定这是 redis 的问题而不是设置你的服务器吗?
-
我遇到了同样的问题,我发现我在另一台服务器上编辑了配置以要求输入密码,而我在登台服务器上运行的服务器没有
requirepass $uP3rs3cretpassW0rd。 ..跛脚!但现在一切正常。