Node-Redis:就绪检查失败 - 需要NOAUTH身份验证

时间:2017-08-14 10:31:23

标签: node.js redis node-redis

我有一个奇怪的redis行为:

{{1}}

但是我一直收到以下错误:

  扔掉呃//未处理的错误'事件

     

ReplyError:就绪检查失败:需要NOAUTH身份验证。

为什么未处理?我设置 onerror处理程序
为什么Ready检查失败?我在选项中禁用

1 个答案:

答案 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命令。