我有一个奇怪的redis行为:
{{1}}
但是我一直收到以下错误:
扔掉呃//未处理的错误'事件ReplyError:就绪检查失败:需要NOAUTH身份验证。
为什么未处理?我设置 onerror处理程序
为什么Ready检查失败?我在选项中禁用
答案 0 :(得分:5)
我不确定为什么你的代码会抛出这个错误。但我在我的本地机器上尝试这个代码,效果很好。
const redis = require('redis');
const redisPassword = "password" ;
const client = redis.createClient({
host : '127.0.0.1',
no_ready_check: true,
auth_pass: redisPassword,
});
client.on('connect', () => {
global.console.log("connected");
});
client.on('error', err => {
global.console.log(err.message)
});
client.set("foo", 'bar');
client.get("foo", function (err, reply) {
global.console.log(reply.toString())
})
运行节点client.js将输出:
连接
巴
NOAUTH需要身份验证是由redis进程命令引起的,它发现客户端未经过身份验证,所以它抱怨它。
我想也许你给createClient的redisUrl有一些问题,尝试调试它或改为我的代码尝试的方式。希望你能解决它。
还有一件事:client.auth(redisPassword)不是必需的,因为如果你设置了auth_pass或密码选项,redis客户端会在任何命令之前自动向服务器发送auth命令。