gpt4 book ai didi

javascript - 将 redis 与 node.js 一起使用时无法获取有效列表

转载 作者:可可西里 更新时间:2023-11-01 11:22:38 24 4
gpt4 key购买 nike

我正在使用 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");
}

代码摘要:

主函数被调用,它进一步调用了另外两个函数(redis_set 或 redis_get)。 Redis_set 采用键和值对,而 redis_get 采用指向数据的键。

问题:

该集合运行良好,但问题在于 GET。我没有按照我在 redis 中设置的方式获取数据。我在 get 中使用了 JASON.parse(),因为我在设置数据时对数据进行了字符串化。

最佳答案

从redis中读取数据是一个异步操作。您不能从回调中返回值。您需要将回调传递给接收获取值的 redis_get 函数。

function redis_get(key, callback) {
client.get(key, function(err, value) {
if(err) {
console.error("error");
} else {
callback(value); // or maybe callback(JSON.parse(value));
}
});
}

并获取一个值:

redis_get("key", function(redis_items) {

});

关于javascript - 将 redis 与 node.js 一起使用时无法获取有效列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com