如何缓存执行然后退出的节点代码



在Node中,通常我会使用内存中缓存或数据库或Lodash内存在服务器上进行缓存。这很容易,因为这个过程永远不会退出。

然而,当运行一些执行然后退出的节点代码时,我如何缓存值,以便在同一代码执行很久之后,它记住以前检索到的值,而不必再次从文件中检索它们(这大约需要2秒,而且速度太慢(?

该程序的大纲是:

(1( 阅读一些文件并提取600万个数字//需要在这里缓存

(2( 在阵列中返回这些数字

(3( 进程退出

我知道我可以使用数据库,但不确定我是否想要为这么简单的代码设置数据库的复杂性。

我可以使用文件缓存,但我不确定将600万个值写入文件,然后每次读取它们是否会提高性能。

我认为我不能使用内存中的缓存,因为进程退出时内存会被擦除?正确的

有什么想法吗?感谢

您可以让节点进程运行,然后将所有内容缓存在内存中。然后,使用类似express(RESTful(或socket.io(通过套接字(的东西,您可以将记录中继到消费者。


对于npm包装

DanPlugin.js

let data;
module.exports = function expensiveGetData() {
if(data) return data;
// do expensive read
data = ...the result;
}

DanPluginConsumer.js

const DanPlugin = require('DanPlugin');
data = DanPlugin();

.... some time later
data2 = DanPlugin(); // fast

相关内容

最新更新