如何使guava缓存值永久化

0 java caching guava

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

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

cache = CacheBuilder.newBuilder()               
                .expireAfterWrite(60, TimeUnit.MINUTES)
                .maximumSize(100)
                .build(....);
Run Code Online (Sandbox Code Playgroud)

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

Xae*_*ess 9

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

cache = CacheBuilder.newBuilder()
            .maximumSize(100)
            .build(....);
Run Code Online (Sandbox Code Playgroud)

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

Guava的Cache已有详细记录,但您也应该阅读Wiki页面.

PS如果通过"永久"意味着"重启后会存在",那么Guava Cache不适合你,因为它是内存缓存.