我正在尝试使用Redis,我想根据值获得结果。
例如:
redis.hmset("user:"+id, "statut", 3);
redis.hmset("user:"+id, "statut", 2);
redis.hmset("user:"+id, "statut", 2);
我希望所有的按键都是statut:2
是否可以使用Redis和节点JS?
非常感谢。
答案 0 :(得分:1)
Redis并不是专为此类查询设计的。您必须扫描每个条目并检查值:
redis.keys('user:*', function(err, results) {
results.forEach(function(key) {
redis.hget(key, 'statut', function(err, statut) {
if (parseInt(statut) === 2) {
console.log(key, statut);
}
});
});
});
另一种方法是根据您关注的字段值将用户ID存储在一个集合中:
redis.sadd('statut:3', userId);
redis.sadd('statut:2', userId);
redis.sadd('statut:2', userId);
然后您的查询将如下所示:
redis.smembers('statut:2', function(err, userIds) {
userIds.forEach(function(userId) {
console.log(userId);
});
});