资讯专栏INFORMATION COLUMN

NPM酷库:lru-cache 基于内存的缓存管理

LoftySoul / 1421人阅读

摘要:酷库,每天两分钟,了解一个流行库。而直接将数据保存在程序变量中,最经济快捷。但是这样就会带来一些其他问题,比如缓存更新缓存过期等。用于在内存中管理缓存数据,并且支持算法。可以让程序不依赖任何外部数据库实现缓存管理。

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高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92679.html

相关文章

  • NPM酷库lru-cache 基于内存缓存管理

    摘要:酷库,每天两分钟,了解一个流行库。而直接将数据保存在程序变量中,最经济快捷。但是这样就会带来一些其他问题,比如缓存更新缓存过期等。用于在内存中管理缓存数据,并且支持算法。可以让程序不依赖任何外部数据库实现缓存管理。 NPM酷库,每天两分钟,了解一个流行NPM库。 为了优化程序性能,我们常常需要奖数据缓存起来,根据实际情况,我们可以将数据存储到磁盘、数据库、redis等。 但是有时候要缓...

    Yumenokanata 评论0 收藏0
  • NPM酷库:promise 异步任务状态管理

    摘要:是一个划时代的库,因为产生后,后续的标准的就是基于的,而机制让人能够以同步样式的代码处理异步任务,彻底解决了回调问题。而的机制其实很简单,它将异步任务抽象为三种状态进行中完成失败。 NPM酷库,每天两分钟,了解一个流行NPM库。 JavaScript的优势就在于其基于异步事件模型,从而Node.js能够拥有非常强大的性能表现。但是,JavaScript的callback方式做异步处理,...

    winterdawn 评论0 收藏0
  • NPM酷库:through 快速创建双向流

    摘要:流做下载等功能时候,我们经常会使用数据流模块,因为,在大文件下载场景下,如果使用接口将文件全部读入内存然后再返回给客户端,很容易撑爆内存,比如一个文件,同时有人在下载,那么服务就需要占用内存。 NPM酷库,每天两分钟,了解一个流行NPM库。 流 做下载等功能时候,我们经常会使用数据流模块(stream),因为,在大文件下载场景下,如果使用fs.readFile()接口将文件全部读入内存...

    DTeam 评论0 收藏0
  • NPM酷库:vm2,安全沙箱环境

    摘要:而标准库中的是不安全的,用户脚本可以轻易突破沙箱环境,获取主程序的上述代码在执行时,程序在第二行就直接退出,虚拟机环境中的代码逃逸,获得了主线程的变量,并调用,造成主程序非正常退出。 NPM酷库,每天两分钟,了解一个流行NPM库。 今天我们要了解的库是 vm2,则是一个Node.js 官方 vm 库的替代品,主要解决了安全问题。 不安全的vm 在Node.js官方标准库中有一个vm库,...

    pkhope 评论0 收藏0
  • NPM酷库:split 按行读取文本流

    摘要:酷库,每天两分钟,了解一个流行库。昨天,我们了解的中数据流的处理,并使用快速创建双向流,今天,我们继续讨论数据流。我们昨天说到,使用数据流,可以分批读取数据到内存,而不用将文件一次性读取到内存。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们了解的Node.js中数据流的处理,并使用through快速创建双向流,今天,我们继续讨论数据流。 我们昨天说到,使用数据流,可以分批...

    骞讳护 评论0 收藏0

发表评论

0条评论

LoftySoul

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<