<dependencies> <dependency> <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> <version>3.10.5</version> </dependency> </dependencies> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ehcache.org/v3" xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd"> <cache alias="queryCache"> <resources> <heap unit="entries">10000</heap> </resources> </cache> </ehcache> import org.ehcache.Cache; import org.ehcache.CacheManager; import org.ehcache.config.builders.CacheConfigurationBuilder; import org.ehcache.config.builders.CacheManagerBuilder; import org.ehcache.config.builders.ResourcePoolsBuilder; import org.ehcache.expiry.Duration; import org.ehcache.expiry.Expirations; import java.util.concurrent.TimeUnit; public class QueryLibrary { private static final CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(true); public static String executeQuery(String query) { Cache<String, String> queryCache = cacheManager.createCache("queryCache", CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, ResourcePoolsBuilder.heap(10000)).withExpiry(Expirations.timeToLiveExpiration(Duration.of(10, TimeUnit.SECONDS)))); String result = queryCache.get(query); if (result == null) { result = performQuery(query); queryCache.put(query, result); } return result; } private static String performQuery(String query) { // ... } }


上一篇:
下一篇:
切换中文