在一定时间内将项目添加到缓存,SCALA

Add items to cache within a certain amount of time, SCALA

假设我有 value1(1 分钟前创建)、value2(5 分钟前创建)和 value3(15 分钟前创建)。

我想添加缓存最近 10 分钟的值。如何在 Scala 中做到这一点?我在 Google Guava CacheLoader.

中只看到最大尺寸但没有看到最长时间

换句话说,我想获取 value1 和 value2,因为它们通过了条件 "Last 10 minutes" 并逐出 15 分钟前创建的 value3。

Guava 缓存支持 timed eviction

对于您的使用场景,您可以使用 CacheBuilder 创建一个缓存,使用 expireAfterWrite(long duration, TimeUnit unit) 方法在 10 分钟后使条目过期。 (对 duration 使用 10,对 unit 参数使用 TimeUnit.MINUTES。)

javadoc 明确指出

[e]xpired entries [...] will never be visible to read or write operations

所以这应该完全满足您的用例。