java cache - ghdrako/doc_snipets GitHub Wiki

Wykorzystanie biblioteki Caffeine

Wydajna implementacja cache.

Caffeine zapewnia kilka strategii (eviction policy):

Strategię działania ustala się podczas tworzenia cache. Tu na przykład dla lib-iko-admin należałoby wskazać:

LoadingCache<Key, Val> graphs = Caffeine.newBuilder()
    .maximumSize(10_000)
    .refreshAfterWrite(1, TimeUnit.MINUTES)
    .build(key -> createVal(key));

Here we should understand a difference between expireAfter and refreshAfter. When the expired entry is requested, an execution blocks until the new value would have been calculated by the build Function. But if the entry is eligible for the refreshing, then the cache would return an old value and asynchronously reload the value. https://www.baeldung.com/java-caching-caffeine#refreshing

Wykorzystanie biblioteki Guava

Jest wolniejsza i nie jest tak zoptymalizowana jak implementacja Caffeine. Wykorzystuje mniej wydajne algorytmy.

⚠️ **GitHub.com Fallback** ⚠️