> Java > java지도 시간 > 본문

Guava의 MapMaker 및 CacheBuilder는 Java 지도에서 만료되는 키 관리를 어떻게 단순화할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-11-20 18:48:16
원래의
776명이 탐색했습니다.

How Can Guava's MapMaker and CacheBuilder Simplify Expiring Key Management in Java Maps?

Java 맵에서 만료되는 키 관리

Java 개발자로서 키 만료 메커니즘을 처리하는 것은 종종 번거로운 작업일 수 있습니다. 많은 사람들은 수동으로 제거할 필요가 없고 코드 기반 구현에만 의존하는 간단한 솔루션을 찾고 있습니다. 이러한 문제를 완화하려면 Google 컬렉션 라이브러리(현 Guava)를 살펴보는 것이 좋습니다.

MapMaker 및 CacheBuilder 소개

Guava는 시간 기반 관리를 위한 두 가지 강력한 도구를 제공합니다. 지도: MapMaker 및 CacheBuilder. MapMaker를 사용하면 항목의 만료 시간을 설정하는 기능을 포함하여 지도를 유연하게 사용자 정의할 수 있습니다. Guava 10.0에 도입된 CacheBuilder는 캐싱 메커니즘 구성을 위한 현대화된 인터페이스를 제공합니다.

만료 기간 설정

맵 항목의 만료 기간을 구성하려면 다음을 사용할 수 있습니다. 방법:

  • MapMaker: 만료(장기, TimeUnit 단위)
  • CacheBuilder:expirAfterWrite(장기, TimeUnit 단위) 또는 만료AfterAccess(긴 기간, TimeUnit 단위)

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);
         }
       });
로그인 후 복사

Guava 10.0의 개선 사항

Guava 10.0에서는, 원래 MapMaker 메소드는 더 이상 사용되지 않습니다. 캐시빌더. 다음 예에서는 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);
          }
        });
로그인 후 복사

이러한 도구를 활용하면 Java에서 시간 기반 맵을 손쉽게 관리하여 만료된 키를 자동으로 제거하고 데이터 처리 메커니즘의 효율성을 최적화할 수 있습니다.

위 내용은 Guava의 MapMaker 및 CacheBuilder는 Java 지도에서 만료되는 키 관리를 어떻게 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿