一尘不染

NodeJS Redis客户端返回错误值

redis

我正在使用NodeJS Redis客户端(Node
Redis)
并调用SISMEMBER
Redis命令。但是,当我调用该命令时,无论该值是否是集合的成员,它总是返回true。

我将其与Node IRC模块结合使用。我不知道为什么Redis调用返回错误的值。我尝试过仅隔离Redis代码(不包含周围的代码),并且工作正常。代码如下,感谢您的帮助。

这行不通

var redis = require("redis");
var redisClient = redis.createClient();

ircClient.addListener('join', function(channel, who) {
    console.log(redisClient.sismember('visitedUsers', 'awdwf'));
    console.log(who + ' connected');
});

这有效,但是

var redis = require("redis");
var redisClient = redis.createClient();

console.log(redisClient.sismember('visitedUsers', 'awdwf'));

阅读 473

收藏
2020-06-20

共1个答案

一尘不染

redis方法都是异步的。该返回值是表示是否任何更多的命令应该暂时发放只是布尔值(这取决于指令队列大小超过高水位上-
这类似于节点的stream.write()返回false)。

尝试这样的事情:

client.sismember('visitedUsers', 'awdwf', function(err, reply) {
  if (err) throw err;
  console.log(reply);
});
2020-06-20