1

Guava Cache を使用して特定の要素をキャッシュしない方法はありますか? 私はまだ要素を返したいが、キャッシュはしたくない。

例えば:

LoadingCache guavaCache;

public Element load(String key) {
  Element element = requestElement(key);

  if(element.isActive == false){
    guavaCache.dontCache(element);
  }

  return element;
}
4

2 に答える 2

1

要素をキャッシュに追加して後で無効にすることを回避する簡単な解決策は、(キャッシュを使用せずに) ソースから要素を要求し、要素が適格である場合はキャッシュに追加することです。

element = cache.getIfPresent(key);

if(element == null){
  element = source.request(key);
  if(element != null && eligibleToCache(element)){
    cache.put(key, element)
  }
}

これを使用すると、キャッシュの機能が失われますが。この解決策は、要素をキャッシュに挿入することを避け、後で無効にする必要があることです。

于 2018-04-27T21:15:22.947 に答える