我尝试使用hgetall
从redis获取所有值,以返回所有'Task_'*
值。
代码:
var redis = require('redis'),
client = redis.createClient();
var tasks = [
{
"_id" : "t1",
"creationDate" : "2015-10-02T19:39:37.181Z",
"device" : "2"
},{
"_id" : "t2",
"creationDate" : "2015-10-02T19:39:37.181Z",
"device" : "1"
}
];
tasks.forEach(function(task){
client.set("task_"+task._id, JSON.stringify(task));
})
client.hgetall("task_", function(e, dt){
if(e)console.log(e);
console.log(dt);
})
hgetall
返回null
答案 0 :(得分:1)
hgetall
用于哈希,你可以使用简单的键,你可以使用这样的东西:
client.keys("task_*", function(e, keys){
if(e)console.log(e);
keys.forEach(function (key) {
client.get(key, function (err, value) {
console.log(value);
});
});
});
答案 1 :(得分:0)
我找到了另一种解决方案......
exports.getAll(calback){
var arr = [];
client.keys("task_*", function(e, keys){
if(e) {console.log(e);}
client.mget(keys, function(err, values){
if(err){console.log(err)}
console.log(values);
callback(values);
});
});
}
使用“keys”获取所有密钥,并传递给mget。 mget函数返回所有结果...最好处理。