Gestion des clés expirantes dans Java Maps
En tant que développeur Java, gérer les mécanismes d'expiration des clés peut souvent être une tâche fastidieuse. Beaucoup recherchent une solution simple qui élimine le besoin de purge manuelle et repose uniquement sur une implémentation basée sur le code. Pour atténuer ce défi, il vaut la peine de se plonger dans la bibliothèque Google Collections (maintenant Guava).
Présentation de MapMaker et CacheBuilder
Guava propose deux outils puissants pour gérer les données temporelles. cartes : MapMaker et CacheBuilder. MapMaker permet une personnalisation flexible des cartes, y compris la possibilité de définir des délais d'expiration pour ses entrées. CacheBuilder, introduit dans Guava 10.0, fournit une interface modernisée pour configurer les mécanismes de mise en cache.
Définition des périodes d'expiration
Pour configurer les périodes d'expiration pour les entrées de carte, vous pouvez utiliser ce qui suit méthodes :
Exemple d'implémentation utilisant 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); } });
Améliorations dans Guava 10.0
Dans Guava 10.0, les méthodes MapMaker d'origine ont été obsolètes au profit de CacheBuilder. L'exemple suivant illustre l'utilisation 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); } });
En tirant parti de ces outils, vous pouvez gérer sans effort des cartes temporelles en Java, garantissant ainsi la purge automatique des clés expirées et optimisant l'efficacité de vos mécanismes de traitement des données.
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!