Open lostvita opened 5 years ago
🤔Emm...好像没什么好说的,先厚着脸皮求个Star👉 LFUStorage吧!
LFU(least frequently used),是操作系统中虚拟页式存储管理的页面置换算法中的一种,其他的还有:OPT(理想页面置换算法)、FIFO(先进先出算法)和LRU(最近最久未使用算法)。
到这里不免又想起大学时候学习操作系统时的那段青涩青春
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。
前言
🤔Emm...好像没什么好说的,先厚着脸皮求个Star👉 LFUStorage吧!
什么是LFU
LFU(least frequently used),是操作系统中虚拟页式存储管理的页面置换算法中的一种,其他的还有:OPT(理想页面置换算法)、FIFO(先进先出算法)和LRU(最近最久未使用算法)。
LFU即是最近最不常使用置换算法,与LRU的区别是:LRU基于时间、LFU基于频率。即LFU淘汰使用频率最低的数据。 基于LFU的数据调度是这样的: 假设我们有2块内存:
一个应用场景 假设我们要实现一个基于本地存储的聊天系统,我们希望:在限定内存容量的情况下,尽可能地保留与我亲密度较高的好友的聊天信息。而判断好友亲密度的维度是聊天频率,那么我们的存储系统就可以基于LFU的策略去设计了。
介绍下LFUStorage
LFUStorage有以下几个特点:
LFUStorage用法:
详细API使劲戳👉:LFUStorage
后续迭代规划
加个小广告👉:如果您有意参与开发维护这个项目(随便聊聊也行),欢迎加V:LiuShuiDW,备注LFUStorage。