NodeJS Redis客户端返回错误的值

时间:2014-12-21 01:04:36

标签: javascript node.js 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'));

1 个答案:

答案 0 :(得分:5)

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

尝试这样的事情:

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