0

是否可以使用 Google Guava 的缓存将我的缓存值永久保存在缓存中?

以下是我构建缓存的方式:

cache = CacheBuilder.newBuilder()               
                .expireAfterWrite(60, TimeUnit.MINUTES)
                .maximumSize(100)
                .build(....);

我希望我的缓存永久保留该值(当前为 60 分钟)。有没有这样做的方法?

4

2 回答 2

10

只需expireAfterWrite从构建器中删除(这是可选功能):

cache = CacheBuilder.newBuilder()
            .maximumSize(100)
            .build(....);

这样只有在达到 maximumSize 时才会驱逐条目。

Guava's Cache 有据可查,但您也应该阅读Wiki 页面

PS如果“永久”是指“重新启动后将在那里”,则 Guava Cache 不适合您,因为它是内存缓存。

于 2013-04-09T11:31:22.817 回答
0

只需更改 builder 中的值:

cache = CacheBuilder.newBuilder()               
            .expireAfterWrite(Long.MAX_VALUE, TimeUnit.DAYS)
            .maximumSize(Long.MAX_VALUE)
            .build(....);
于 2013-04-09T11:30:11.910 回答