摘要:酷库,每天两分钟,了解一个流行库。而直接将数据保存在程序变量中,最经济快捷。但是这样就会带来一些其他问题,比如缓存更新缓存过期等。用于在内存中管理缓存数据,并且支持算法。可以让程序不依赖任何外部数据库实现缓存管理。
NPM酷库,每天两分钟,了解一个流行NPM库。
为了优化程序性能,我们常常需要奖数据缓存起来,根据实际情况,我们可以将数据存储到磁盘、数据库、redis等。
但是有时候要缓存的数据量非常小,或者项目规模非常小,也许就是一个工具脚本,使用redis等外部数据库,还得做依赖部署。而直接将数据保存在程序变量中,最经济、快捷。但是这样就会带来一些其他问题,比如缓存更新、缓存过期等。
lru-cachelru-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高手
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61949.html
摘要:酷库,每天两分钟,了解一个流行库。而直接将数据保存在程序变量中,最经济快捷。但是这样就会带来一些其他问题,比如缓存更新缓存过期等。用于在内存中管理缓存数据,并且支持算法。可以让程序不依赖任何外部数据库实现缓存管理。 NPM酷库,每天两分钟,了解一个流行NPM库。 为了优化程序性能,我们常常需要奖数据缓存起来,根据实际情况,我们可以将数据存储到磁盘、数据库、redis等。 但是有时候要缓...
摘要:是一个划时代的库,因为产生后,后续的标准的就是基于的,而机制让人能够以同步样式的代码处理异步任务,彻底解决了回调问题。而的机制其实很简单,它将异步任务抽象为三种状态进行中完成失败。 NPM酷库,每天两分钟,了解一个流行NPM库。 JavaScript的优势就在于其基于异步事件模型,从而Node.js能够拥有非常强大的性能表现。但是,JavaScript的callback方式做异步处理,...
摘要:流做下载等功能时候,我们经常会使用数据流模块,因为,在大文件下载场景下,如果使用接口将文件全部读入内存然后再返回给客户端,很容易撑爆内存,比如一个文件,同时有人在下载,那么服务就需要占用内存。 NPM酷库,每天两分钟,了解一个流行NPM库。 流 做下载等功能时候,我们经常会使用数据流模块(stream),因为,在大文件下载场景下,如果使用fs.readFile()接口将文件全部读入内存...
摘要:而标准库中的是不安全的,用户脚本可以轻易突破沙箱环境,获取主程序的上述代码在执行时,程序在第二行就直接退出,虚拟机环境中的代码逃逸,获得了主线程的变量,并调用,造成主程序非正常退出。 NPM酷库,每天两分钟,了解一个流行NPM库。 今天我们要了解的库是 vm2,则是一个Node.js 官方 vm 库的替代品,主要解决了安全问题。 不安全的vm 在Node.js官方标准库中有一个vm库,...
摘要:酷库,每天两分钟,了解一个流行库。昨天,我们了解的中数据流的处理,并使用快速创建双向流,今天,我们继续讨论数据流。我们昨天说到,使用数据流,可以分批读取数据到内存,而不用将文件一次性读取到内存。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们了解的Node.js中数据流的处理,并使用through快速创建双向流,今天,我们继续讨论数据流。 我们昨天说到,使用数据流,可以分批...
阅读 1406·2021-11-24 10:20
阅读 3648·2021-11-24 09:38
阅读 2293·2021-09-27 13:37
阅读 2196·2021-09-22 15:25
阅读 2269·2021-09-01 18:33
阅读 3487·2019-08-30 15:55
阅读 1782·2019-08-30 15:54
阅读 2080·2019-08-30 12:50