原文链接: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