[英]Java Guava: Remove and put back elements from Multimap while iterating
[英]Remove elements from Guava Cache
我正在使用import com.google.common.cache.Cache
我用這種方式啟動了緩存:
private Cache<String,String> mycache =CacheBuilder.newBuilder()
.concurrencyLevel(4).expireAfterAccess(30, TimeUnit.MINUTES).build();
我願意在等待到期之前在某些情況下手動刪除條目。
我發現這樣做的唯一方法是:
mycache.asMap().remove("somekey");
我在問這是不是這樣做的正確方法? 我有什么問題嗎?
正確的方法是使用invalidate
方法:
mycache.invalidate("somekey");
如API文檔中所述 :
void invalidate(Object key)
丟棄關鍵任何緩存值key
。
您應該使用invalidate(key)
方法刪除單個元素。對於批量刪除,您可以使用invalidateAll(keys)
方法。
在你的情況下你可以使用
mycache.invalidate("somekey");
希望這能解決你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.