我正在使用import com.google.common.cache.Cache
我已经用这种方式启动了缓存:
private Cache<String,String> mycache =CacheBuilder.newBuilder()
.concurrencyLevel(4).expireAfterAccess(30, TimeUnit.MINUTES).build();
我愿意在等待过期之前在某些情况下手动删除条目。
我发现这样做的唯一方法是:
mycache.asMap().remove("somekey");
我在问这是不是这样做的正确方法?我会遇到任何问题吗?
答案 0 :(得分:31)
正确的方法是使用invalidate
方法:
mycache.invalidate("somekey");
中所述
void invalidate(Object key)
丢弃键key
的所有缓存值。
答案 1 :(得分:5)
您应该使用invalidate(key)
方法删除单个元素。对于批量删除,您可以使用invalidateAll(keys)
方法。
在您的情况下,您可以使用
mycache.invalidate("somekey");
希望这能解决你的问题。