Javascript 尝试使用Redis和后台任务更好地理解NodeJ

Javascript 尝试使用Redis和后台任务更好地理解NodeJ,javascript,node.js,redis,Javascript,Node.js,Redis,我试图在本地测试一个节点服务器,以便最终在DigitalOcean上部署它(这完全是另一回事)。目前,我已经成功地使用rest端点和自签名证书设置了本地节点服务器。我的问题是我想存储我的用户可以通过点击rest端点检索的数据。我目前的想法是,我会在服务器上运行某种后台任务,不断地获取新数据,这样当一些更流行的查询出现时,我就可以为它们提供最新的数据,经过清理,随时可以使用 我的问题是,我无法理解如何让一个后台函数运行,它会一次又一次地调用自己,而最终不会导致内存问题。我在看Bull或Kue,但我

我试图在本地测试一个节点服务器,以便最终在DigitalOcean上部署它(这完全是另一回事)。目前,我已经成功地使用rest端点和自签名证书设置了本地节点服务器。我的问题是我想存储我的用户可以通过点击rest端点检索的数据。我目前的想法是,我会在服务器上运行某种后台任务,不断地获取新数据,这样当一些更流行的查询出现时,我就可以为它们提供最新的数据,经过清理,随时可以使用


我的问题是,我无法理解如何让一个后台函数运行,它会一次又一次地调用自己,而最终不会导致内存问题。我在看Bull或Kue,但我不确定它们是否适合我的具体需求。我以前也从未处理过NoSQL数据库,所以Redis对我来说是相当陌生的。有什么建议或建议吗?我有点不知所措,不知道从这里走到哪里,尽管我对我要做的事情有一个大致的想法。

我想到了两个选择。如果您使用的是“hiredis”软件包,您可以在现代四核上实现每秒200k的查询。可以想象,您每次都可以检索最新的数据

另一个选项包括在启动时更新应用程序内存,然后每隔一段时间更新一次。对具有以下功能的函数的递归调用:

函数updateValuesFromRedis(秒){
返回redishGetAsyc('keyhash')
.然后(函数(值){
返回savevalue(值);
})
.最后(函数(){
setTimeout(函数(){
log('更新…');
updateValuesFromRedis(秒);
},1000*秒)
})
.catch(函数(错误){
console.error('从Redis更新值时出错!',错误);
});
}
(功能表){
updateValuesFromRedis(60);

})();