【发布时间】:2012-12-16 03:44:38
【问题描述】:
我正在使用 node.js 并使用 redis 来缓存服务器上的一些数据。
我的代码:
var client = redis.createClient();
client.on("error", function (err) {
console.log("Error " + err);
});
client.flushall();
function redis_get(key){
client.get(key, function(err, value) {
if (err) {
console.error("error");
} else {
return value;
}
});
}
function redis_set(key, value){
client.set(key, JSON.stringify(value), function(err) {
if (err) {
console.error("error");
}
return true
});
}
function main(){
var new_items = [{"id": 1, "name": "abc"}, {"id": 2, "name": "xyz"}, {"id": 3, "name": "bbc"}];
//set data in redis
redis_set("key", new_items);
//get data from redis
var redis_items = redis_get("key");
}
代码摘要:
主函数被调用,它进一步调用了另外 2 个函数(redis_set 或 redis_get)。 redis_set 接受一个键和一个值对,而 redis_get 接受指向数据的键。
问题:
该套装完美运行,但问题在于 GET。我没有按照我在 redis 中设置的方式获取数据。我在 get 中使用了 JASON.parse(),因为我在设置数据时对数据进行了字符串化。
【问题讨论】:
-
那么您以什么形式获取数据?看起来您正试图将异步函数视为同步函数。还是
client.set/client.get阻止执行?
标签: javascript node.js redis