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

问题描述 投票:1回答:1

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

我想添加以缓存最近10分钟的值。如何在Scala中做到这一点?我在Google Guava CacheLoader中只看到最大大小,但没有看到最大时间。

换句话说,我要获取value1和value2,因为它们通过了“过去10分钟”标准并逐出了15分钟前创建的value3。

scala guava
1个回答
0
投票

Guava缓存支持timed eviction

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

javadoc明确指出

[[e] xpired条目[...]永远不会对读取或写入操作可见]

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

© www.soinside.com 2019 - 2024. All rights reserved.