Heim > Java > javaLernprogramm > Wie kann ich mit Guava eine zeitbasierte ablaufende Karte oder einen Cache in Java erstellen?

Wie kann ich mit Guava eine zeitbasierte ablaufende Karte oder einen Cache in Java erstellen?

Patricia Arquette
Freigeben: 2024-11-24 14:42:15
Original
553 Leute haben es durchsucht

How Can I Create a Time-Based Expiring Map or Cache in Java Using Guava?

Zeitbasierte Java-Karte/Cache mit ablaufenden Schlüsseln

Verwaltung zeitbasierter Einträge in einer Karte oder einem Cache in der Programmiersprache Java ist eine häufige Anforderung. Dieser Artikel bietet eine Lösung mithilfe von Google Collections (Guava) zum automatischen Löschen abgelaufener Einträge.

Lösung

Guavas MapMaker-Klasse kann eine zeitbasierte Karte mit einstellbarem Ablauf erstellen Einstellungen. Die MapMaker-API ermöglicht die Anpassung verschiedener Parameter, wie zum Beispiel:

  • Parallelitätsgrad
  • Schlüssel- und Werttypen (stark/weich/schwach)
  • Maximale Größe
  • Ablaufzeit

Nutzung Beispiel

Der folgende Codeausschnitt zeigt, wie eine gleichzeitige zeitbasierte Karte erstellt wird:

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);
         }
       });
Nach dem Login kopieren

In diesem Beispiel löscht die Karte abgelaufene Einträge automatisch alle 10 Minuten.

Update

In Guava 10.0 und höher ist das MapMaker-Methoden wurden zugunsten des 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);
          }
        });
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mit Guava eine zeitbasierte ablaufende Karte oder einen Cache in Java erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage