在Java中实现定期刷新的Cache

Abh*_*ain 6 java caching bulkinsert bulk

我的用例是在存储在持久数据库中的数据上维护内存缓存.

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

常规高速缓存实现与此特定高速缓存之间的主要区别在于,它需要定期刷新所有元素,因此与LRU类型的高速缓存非常不同.

我需要在Java中实现这个实现,如果有任何现有的框架可以用来构建它们,那将是很好的.

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

任何帮助将受到高度赞赏.

另外,如果有可能逐步做刷新,它应是伟大的,因为同时刷新整个缓存它产生唯一的限制是,如果高速缓存的大小是非常大的,那么内存堆应该ATLEAST的两倍缓存以加载新条目并用新映射替换旧映射.如果缓存是增量的,或者有一个分块刷新(刷新大小相同),那就太好了.

jta*_*orn 3

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

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

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