在Node中,通常我使用内存中的缓存或数据库或使用Lodash备忘录在服务器上缓存。这很容易,因为该过程永远不会退出。
但是,当运行一些先执行然后退出的节点代码时,如何缓存值,以便在以后执行同一代码时,它可以记住先前检索的值,而不必再次从文件中检索它们(这大约需要2秒,太慢了吗?
该程序的概要是:
(1)读取一些文件并提取600万个数字//需要此处的提示
(2)将这些数字返回到数组中
(3)流程退出
我知道我可以使用数据库,但不确定要这样简单的代码来建立数据库的复杂性。
我可以使用文件缓存,但是我不确定将600万个值写入文件然后在以后每次读取它们都会提高性能。
我不认为我可以使用内存中的高速缓存,因为在进程退出时会擦除内存吗?对吧?
有什么想法吗?谢谢
答案 0 :(得分:1)
您可以使节点进程保持运行状态,然后将所有内容缓存在内存中。然后使用employeeInfo
(RESTful)或express
(通过套接字)的方式将记录转发给使用者。
对于npm软件包
DanPlugin.js
socket.io
DanPluginConsumer.js
let data;
module.exports = function expensiveGetData() {
if(data) return data;
// do expensive read
data = ...the result;
}