使ってます 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");
これで問題が解決することを願っています。