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); } });
Avec MapMaker, vous pouvez spécifier divers paramètres :
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); } });
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!