如何使guava缓存值永久化

时间:2013-04-09 11:24:15

标签: java caching guava

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

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

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

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

2 个答案:

答案 0 :(得分:9)

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

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

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

Guava的缓存为well documented,但您也应该阅读Wiki page

P.S。如果用“永久”表示“重启后会存在”,那么Guava Cache不适合你,因为它是内存缓存。

答案 1 :(得分:0)

只需更改构建器中的值:

cache = CacheBuilder.newBuilder()               
            .expireAfterWrite(Long.MAX_VALUE, TimeUnit.DAYS)
            .maximumSize(Long.MAX_VALUE)
            .build(....);