原文鏈接:github.com/qiu...javascript
🤔Emm...好像沒什麼好說的,先厚着臉皮求個Star👉 LFUStorage吧!java
LFU(least frequently used),是操做系統中虛擬頁式存儲管理的頁面置換算法中的一種,其餘的還有:OPT(理想頁面置換算法)、FIFO(先進先出算法)和LRU(最近最久未使用算法)。git
到這裏難免又想起大學時候學習操做系統時的那段青澀青春github
LFU便是最近最不常使用置換算法,與LRU的區別是:LRU基於時間、LFU基於頻率。即LFU淘汰使用頻率最低的數據。 基於LFU的數據調度是這樣的: 假設咱們有2塊內存:算法
一個應用場景 假設咱們要實現一個基於本地存儲的聊天系統,咱們但願:在限定內存容量的狀況下,儘量地保留與我親密度較高的好友的聊天信息。而判斷好友親密度的維度是聊天頻率,那麼咱們的存儲系統就能夠基於LFU的策略去設計了。架構
LFUStorage有如下幾個特色:性能
LFUStorage用法:學習
import LFUStorage from 'lfustorage'
const chatStorage = new LFUStorage(namespace) // namespace is optional
chatStorage
.nameSpace(namespace) // setting namespace
.max(num) // setting data counts
.expire(sec) // setting expire time
.on('overflow', (outKeys) => {}) // subscribe `overflow` event
.off('overflow') // unsubscribe
chatStorage.set(key, val) // set
chatStorage.get(key) // get
複製代碼
詳細API使勁戳👉:LFUStorage優化
加個小廣告👉:若是您有意參與開發維護這個項目(隨便聊聊也行),歡迎加V:LiuShuiDW,備註LFUStorage。ui