`title: IndexedDB LRU 缓存与热点数据管理``categories: Web 开发/前端/数据管理``keywords: IndexedDB,LRU,热点,缓存,淘汰``description: 在 IndexedDB 中实现 LRU 缓存与热点数据管理,通过访问计数与时间窗口进行淘汰,保障高命中与低配额压力。`模型`items(id, value, lastAccess, accessCount)`;阈值触发淘汰与压缩。更新访问元信息async function touch(db, id) {

return new Promise((resolve, reject) => {

const tx = db.transaction('items', 'readwrite');

const s = tx.objectStore('items');

const r = s.get(id);

r.onsuccess = () => {

const v = r.result; if (!v) return resolve();

s.put({ ...v, lastAccess: Date.now(), accessCount: (v.accessCount || 0) + 1 });

};

tx.oncomplete = () => resolve();

tx.onerror = () => reject(tx.error);

});

}

淘汰策略定期扫描 `lastAccess` 最旧与 `accessCount` 最低条目,清理或归档至 Blob。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部