목차

Caffeine - java cache

Eviction

weakKeys() / weakValues()

LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
    .weakKeys()
    .weakValues()
    .build(key -> createExpensiveGraph(key));
weakKeys()를 사용하려면 Key 역할을 하는 객체의 레퍼런스도 캐시하던지 정적 상수로 만들던지 하는 식으로 key 의 값이 동일하면 그 reference도 동일하게 처리해야만한다.

softValues()

LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
    .softValues()
    .build(key -> createExpensiveGraph(key));