我正在使用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'));
答案 0 :(得分:5)
redis
方法都是异步的。 return values只是布尔值,表示是否应该暂时发出更多命令(取决于命令队列大小是否超过高水位线 - 这类似于节点stream.write()
返回false)。
尝试这样的事情:
client.sismember('visitedUsers', 'awdwf', function(err, reply) {
if (err) throw err;
console.log(reply);
});