Carte/Cache temporel Java avec clés expirantes
Dans le langage de programmation Java, gestion des entrées temporelles dans une carte ou un cache est une exigence courante. Cet article fournit une solution utilisant Google Collections (Guava) pour la purge automatique des entrées expirées.
Solution
La classe MapMaker de Guava peut créer une carte temporelle avec expiration réglable paramètres. L'API MapMaker permet de personnaliser divers paramètres, tels que :
Utilisation Exemple
L'extrait de code suivant montre comment créer une carte temporelle simultanée :
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); } });
Dans cet exemple, la carte purge automatiquement les entrées expirées toutes les 10 minutes.
Mise à jour
Dans Guava 10.0 et versions ultérieures, le Les méthodes MapMaker ont été déconseillées 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); } });
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!