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