Maison > Java > javaDidacticiel > le corps du texte

Comment implémenter une carte/un cache expirant en fonction du temps en Java ?

Barbara Streisand
Libérer: 2024-11-20 13:34:17
original
356 Les gens l'ont consulté

How to Implement a Time-Based Expiring Map/Cache in Java?

Carte/cache Java basé sur le temps avec clés expirantes

Cette question recherche une implémentation Java qui expire automatiquement les entrées en fonction d'un délai d'expiration configurable. La solution privilégiée évite les références faibles, les fichiers de configuration externes et la mise en œuvre manuelle.

Réponse

La bibliothèque Guava fournit une solution avec sa classe MapMaker :

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

Pour Guava version 10.0 et supérieure, utilisez 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

Cette implémentation fournit une expiration automatique des clés, garantissant que les entrées sont supprimées après une période spécifiée.

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