使用Google Guava的缓存是否可以永久保留缓存中的缓存值?
以下是我构建缓存的方法:
cache = CacheBuilder.newBuilder()
.expireAfterWrite(60, TimeUnit.MINUTES)
.maximumSize(100)
.build(....);
我希望我的缓存永久保留该值(目前为60分钟)。有没有这样做的方法?
答案 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(....);