Java에서는 시간 기반 캐싱을 처리하는 것이 어려울 수 있습니다. 키는 특정 기간이 지나면 만료될 수 있으며 만료된 항목을 자동으로 삭제해야 할 수도 있습니다.
이 문제에 대한 한 가지 해결책은 현재 Guava로 알려진 Google 컬렉션의 기능을 활용하는 것입니다. Guava의 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); } });
MapMaker를 사용하면 다양한 매개변수를 지정할 수 있습니다.
Guava는 이후 CacheBuilder를 위해 이러한 MapMaker 메소드 중 일부를 더 이상 사용하지 않습니다.
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는 Java에서 시간 기반 캐싱을 관리하기 위해 더욱 간결하고 업데이트된 API를 제공합니다.
위 내용은 Guava를 사용하여 Java에서 시간 기반 만료 캐시를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!