Heim >Java >javaLernprogramm >Wie erstelle ich mit Guava einen zeitbasierten ablaufenden Cache in Java?
In Java kann der Umgang mit zeitbasiertem Caching eine Herausforderung sein. Schlüssel können nach einer bestimmten Zeitspanne ablaufen und eine automatische Löschung dieser abgelaufenen Einträge kann erforderlich werden.
Eine Lösung für dieses Problem besteht darin, die Leistungsfähigkeit von Google Collections, jetzt bekannt als Guava, zu nutzen. Die MapMaker-Klasse von Guava bietet einen praktischen Mechanismus zum Erstellen von Karten mit ablaufenden Schlüsseln.
ConcurrentMap<Key, Graph> graphs = new MapMaker() .concurrencyLevel(4) .softKeys() .weakValues() .maximumSize(10000) .expiration(10, TimeUnit.MINUTES) .makeComputingMap( new Function<Key, Graph>() { public Graph apply(Key key) { return createExpensiveGraph(key); } });
Mit MapMaker können Sie verschiedene Parameter angeben:
Guava hat seitdem einige dieser MapMaker-Methoden zugunsten von CacheBuilder veraltet:
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSize(10000) .expireAfterWrite(10, TimeUnit.MINUTES) .build( new CacheLoader<Key, Graph>() { public Graph load(Key key) throws AnyException { return createExpensiveGraph(key); } });
CacheBuilder bietet eine prägnantere und aktualisierte API für die Verwaltung von zeitbasiertem Caching in Java.
Das obige ist der detaillierte Inhalt vonWie erstelle ich mit Guava einen zeitbasierten ablaufenden Cache in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!