Java、Guava 或其他可以执行以下操作的库中是否有可用的 Cache 实现:
- 具有自动过期项目的键、值缓存。修改该值会重新启动到期计时器。每个键/值对分别过期(有自己的计时器)。
- 可以手动添加项目,例如,
cache.put(key, value);
我见过 Guava LoadingCache
,但该实现需要您实现该load(key)
方法。该load(key)
方法旨在通过使用数据库或其他资源基于键计算值。一旦通过该load(key)
方法计算出该值,我相信LoadingCache
会将结果(键,值)对粘贴在缓存中。
我的实现要求与我的不同,LoadingCache
因为我的键将保持固定,但相应的值将在我抓取数据库时缓慢更新。换句话说,我不想像 LoadingCache 在它的load(key)
方法中那样一次加载整个值——我想保持键不变,并根据我从数据库中获得的内容增量更新值 Object。因此,这似乎排除了使用,LoadingCache
因为该load(key)
方法会强制您一次加载键的相应值。
我想要增量加载值(对于每个键)的原因是因为它需要很长时间,并且我使用 AJAX 轮询来保持用户更新。因此,一次加载它是没有用的。我想缓存这些值,以便可以使用 AJAX 轻松检索它们。我希望它们过期,因为一旦用户完成访问网页,它们就没有用了。