Maison > Java > javaDidacticiel > Comment créer un cache expirant en fonction du temps en Java à l'aide de Guava ?

Comment créer un cache expirant en fonction du temps en Java à l'aide de Guava ?

Patricia Arquette
Libérer: 2024-11-21 07:02:16
original
412 Les gens l'ont consulté

How to Create a Time-Based Expiring Cache in Java using Guava?

Carte/cache temporel Java avec clés expirantes

En Java, la gestion de la mise en cache temporelle peut être un défi. Les clés peuvent expirer après une certaine durée, et la purge automatique de ces entrées expirées peut devenir nécessaire.

Une solution à ce problème consiste à exploiter la puissance de Google Collections, désormais connue sous le nom de Guava. La classe MapMaker de Guava fournit un mécanisme pratique pour créer des cartes avec des clés expirant.

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);
         }
       });
Copier après la connexion

Avec MapMaker, vous pouvez spécifier divers paramètres :

  • concurrencyLevel : contrôle le parallélisme au sein de la carte.
  • softKeys : indique que les clés doivent être tenues faiblement, permettant au garbage collector de les récupérer lorsque cela est possible.
  • weakValues : similaire aux softKeys, mais pour les valeurs.
  • maximumSize : Spécifie le nombre maximum d'entrées dans la carte.
  • expiration : définit la durée d'expiration des entrées.

Guava a depuis déprécié certaines de ces méthodes MapMaker au profit de CacheBuilder :

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);
          }
        });
Copier après la connexion

CacheBuilder propose une API plus concise et mise à jour pour gérer la mise en cache temporelle en Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal