【发布时间】:2017-06-14 02:09:18
【问题描述】:
我阅读了很多关于这个问题的信息,但我无法解决它。我正在使用 node.js 和 redis 中的代码从密钥中获取数据。当然,当我执行 client.get 时,由于异步,它会将数据打印为 nul 或 undefined。但是不知道怎么解决。
示例代码:这部分工作正常
pubsub.on('psubscribe', function() {
while(i<end){
client.set( i , url, function() {
});
client.expire( i , 10);
console.log("New key: " + i);
i++;
}
});
然后,当密钥过期时,我想获取数据以在 Redis 中重新设置:
pubsub.on('pmessage', function(channel, message) {
var keyData;
client.get(message, function(err,data){
keyData = data;
});
client.set( message , keyData, function(){});
client.expire( message , 10);
});
当然,数据是空的。
我该如何解决?
非常感谢。
【问题讨论】:
-
你到底想做什么?如果设置过期时间,redis中的数据会过期吗?你为什么要得到它?您可以很好地将数据存储在程序中的某个位置并重新设置
-
@DKG 基本上他在 client.set 中将 keyData 设为 null,因为回调尚未到达 :)
标签: node.js asynchronous redis