NPM酷库,每天两分钟,了解一个流行NPM库。
为了优化程序性能,我们常常需要奖数据缓存起来,根据实际情况,我们可以将数据存储到磁盘、数据库、redis等。
但是有时候要缓存的数据量非常小,或者项目规模非常小,也许就是一个工具脚本,使用redis等外部数据库,还得做依赖部署。而直接将数据保存在程序变量中,最经济、快捷。但是这样就会带来一些其他问题,比如缓存更新、缓存过期等。
lru-cache
lru-cache 用于在内存中管理缓存数据,并且支持LRU算法。可以让程序不依赖任何外部数据库实现缓存管理。
- LRU算法:尽量保留最近使用过的项
- 可指定缓存大小
- 可指定缓存项过期时间
const LRU = require('lru-cache');
const cache = LRU({
max: 500,
maxAge: 1000 * 60 * 60
});
cache.set('key','value');
cache.get('key'); // "value"
cache.reset(); // 清空
虽然,lru-cache 使用非常方便,但是lru-cache的缓存数据保存在当前进程内存内,这就决定了依赖lru-cache的项目是有状态的程序,这样就不能够分布式部署多实例负载均衡,所以如果系统设计需要多实例运行,那么还是需要使用redis。
参考资料
https://github.com/isaacs/nod...
欢迎关注公众号:梁兴臣
每天了解一个NPM库,一年后成为Node.js高手
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。