如何在节点redis上getAll
how to getAll on node redis
我正在尝试使用 hgetall
从 redis 中获取所有值 return 所有 '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
returns null
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);
});
});
});
我找到了另一个解决方案...
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 函数 return 所有结果...更好处理。
我正在尝试使用 hgetall
从 redis 中获取所有值 return 所有 '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
returns null
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);
});
});
});
我找到了另一个解决方案...
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 函数 return 所有结果...更好处理。