NPM酷庫:lru-cache 基於內存的緩存管理

NPM酷庫,天天兩分鐘,瞭解一個流行NPM庫。node

爲了優化程序性能,咱們經常須要獎數據緩存起來,根據實際狀況,咱們能夠將數據存儲到磁盤、數據庫、redis等。git

可是有時候要緩存的數據量很是小,或者項目規模很是小,也許就是一個工具腳本,使用redis等外部數據庫,還得作依賴部署。而直接將數據保存在程序變量中,最經濟、快捷。可是這樣就會帶來一些其餘問題,好比緩存更新、緩存過時等。github

lru-cache

lru-cache 用於在內存中管理緩存數據,而且支持LRU算法。可讓程序不依賴任何外部數據庫實現緩存管理。redis

  • 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高手緩存

相關文章
相關標籤/搜索