刷新 LRU 缓存

发布于 2024-10-11 21:47:45 字数 154 浏览 3 评论 0原文

我正在使用从 LinkedHashMap 扩展的映射来实现缓存(这样我就可以实现removeEldestEntry)。旧的实现使用常规哈希图,以设定的时间间隔刷新。我想知道如何使缓存中的数据保持最新。我怀疑我是否可以在特定时间刷新而不弄乱 LRU 的点。查询数据库中条目的时间戳会不会特别昂贵?

I am implementing a cache using a map extended from LinkedHashMap (so I can implement removeEldestEntry). The old implementation used a regular hash map, refreshed at a set interval. I was wondering how I can keep the data in the cache current. I doubt I can just refresh at a specific time without messing up the point of LRU. Would it be particularly costly to query the DB for a time stamp on the entry?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二智少女 2024-10-18 21:47:45

为什么不使用 操作系统缓存 - 没有必要重新发明轮子。

Why not use OS Cache - no point in reinventing the wheel.

不美如何 2024-10-18 21:47:45

我最终选择了 LinkedHashMap,按访问时间排序并检查数据库的时间戳。这就像一个魅力,大大减少了应用程序的内存负载。

I ended up going with the LinkedHashMap, ordered by access time and checking against the db for timestamps. This worked like a charm and greatly reduced the memory load of the application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文