2013-04-09 46 views
0

使用Google Guava的高速緩存可以將緩存的值永久保存在高速緩存中嗎?如何使番石榴高速緩存值永久

下面是我如何建立我的緩存:

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

我想我的緩存保持永久值(目前是60分鐘)。有沒有這樣做的方法?

回答

9

只是刪除從建設者expireAfterWrite(這是可選功能):

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

這樣的項目,纔會達到MAXIMUMSIZE只有當被驅逐。

番石榴的高速緩存是well documented,但你也應該讀Wiki page

P.S.如果通過「永久」,你的意思是「重新啓動後會在那裏」,由於Guava Cache在內存中緩存,它不適合你。

0

在建設者只需更改值:

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

感謝瓦赫....我只是沒有足夠的聲譽來解除您的答案...它的解決方案也... – Buckzm 2013-04-10 09:26:38

+0

另一個肯定是更好:)我只是把它作爲一種「黑客攻擊」的一般方式「時間限制。 – 2013-04-10 10:16:23