我正在尝试使用Node.js构建命令行应用
我使用node-cache来缓存来自API调用的一些数据。
但是,当我尝试检索之前使用myCache.get( "key" )
设置的数据myCache.set( "key", data, 10000 );
时,它始终返回undefined
。
我想问题是当我从命令行运行应用程序时,每次const myCache = new NodeCache();
我都在创建缓存对象。
但是如果不创建对象,缓存就不会明显起作用。这有什么工作吗?
答案 0 :(得分:2)
您正在使用的缓存库将数据保留在应用程序内存中。因此,一旦应用程序退出,缓存就会丢失。
在Web应用程序中情况不同,因为应用程序永远不会退出(除非它崩溃),因此缓存会保留数据。
解决此问题的一种方法是将缓存存储在外部存储中,如Redis
(但您必须运行Redis服务器),或者只是在文本文件或SQLite数据库中。您需要为此编写一个简单的缓存库,或者搜索提供持久存储的库。
更新:快速搜索提供了这个库:https://www.npmjs.com/package/cache-manager,我没有使用它,但文档说它支持可能不同的存储来保存数据,而node-cache-manager-fs
可能对您有用情况下。
答案 1 :(得分:0)
使用这个 const NodeCache = require("节点缓存"); const myCache = new NodeCache(); 在代码顶部
首先像我们通常声明的节点模块一样在顶部声明它 所以它工作正常 设置,获取,删除都很好