Java实现周期性刷新Cache

2024-01-12

我的用例是对持久数据库中存储的数据维护内存缓存。

我使用这些数据来填充 UI 上的条目列表/地图。在任何给定时间,UI 上显示的数据应尽可能更新(这可以通过缓存的刷新频率来完成)。

常规缓存实现与此特定缓存之间的主要区别在于,它需要定期批量刷新所有元素,因此与 LRU 类型的缓存有很大不同。

我需要在 Java 中实现此实现,如果有任何现有框架可用于围绕它们构建此实现,那就太好了。

我已经探索了 Google Guava 缓存库,但它更适合每个条目刷新而不是批量刷新。没有简单的 API 可以刷新整个缓存。

任何帮助将不胜感激。

另外,如果可以增量地进行刷新,那就太好了,因为刷新整个缓存时出现的唯一限制是,如果缓存非常大,那么内存堆应该至少是缓存大小的两倍。缓存以便加载新条目并用新映射替换旧映射。如果缓存是增量的或者有分块刷新(同等大小的刷新),那就太好了。


EHCache http://ehcache.org/是一个功能相当齐全的java缓存库。我想他们有一些对你有用的东西。

为了对缓存进行增量重新加载(这适用于大多数缓存),只需迭代当前加载的条目并强制刷新它们。 (您可以在后台调度程序上运行此任务)。

作为强制重新加载整个缓存的替代方案,EHCache 能够为条目指定“生存时间”,因此如果条目太陈旧,将自动重新加载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java实现周期性刷新Cache 的相关文章

随机推荐