Java >> Java Tutorial >  >> Java

Leichtgewichtige Cache-API für Java-Objekte

EHCache ist sehr nett. Sie können einen In-Memory-Cache erstellen. Sehen Sie sich ihre Codebeispiele an, um ein Beispiel für die Erstellung eines In-Memory-Cache zu erhalten. Sie können eine maximale Größe und eine Lebensdauer angeben.

EHCache bietet einige erweiterte Funktionen, aber wenn Sie nicht daran interessiert sind, sie zu verwenden - lassen Sie es. Aber es ist schön zu wissen, dass sie da sind, wenn sich Ihre Anforderungen jemals ändern.

Hier ist ein In-Memory-Cache. Im Code erstellt, ohne Konfigurationsdateien.

CacheManager cacheManager = CacheManager.getInstance();
int oneDay = 24 * 60 * 60;
Cache memoryOnlyCache = new Cache("name", 200, false, false, oneDay, oneDay);
cacheManager.addCache(memoryOnlyCache);

Erstellt einen Cache, der 200 Elemente enthält und eine TTL von 24 Stunden hat.


Ich mag den MapMaker wirklich die mit Google Guava (API) geliefert wird

Das JavaDoc hat ein hübsches Beispiel, das sowohl seine Benutzerfreundlichkeit als auch seine Leistungsfähigkeit demonstriert:

ConcurrentMap<Key, Graph> graphs = new MapMaker()
   .concurrencyLevel(32)
   .softKeys()
   .weakValues()
   .expiration(30, TimeUnit.MINUTES)
   .makeComputingMap(
       new Function<Key, Graph>() {
         public Graph apply(Key key) {
           return createExpensiveGraph(key);
         }
       });

Darüber hinaus wurde mit Release 10.0 von Guava das viel umfangreichere com.google.common.cache eingeführt Paket (es gibt einen netten Wiki-Eintrag, wie man sie benutzt).


Sie können sich auch meine kleine Cache-Bibliothek namens KittyCache ansehen unter:

https://github.com/treeder/kitty-cache

Es gibt einige Leistungsbenchmarks im Vergleich zu ehcache.

Es wird im SimpleJPA-Projekt als Second-Level-Cache verwendet.


Java-Tag