Rumah  >  Artikel  >  Java  >  Bagaimanakah Guava's MapMaker dan CacheBuilder Memudahkan Pengurusan Utama yang Tamat Tempoh dalam Peta Java?

Bagaimanakah Guava's MapMaker dan CacheBuilder Memudahkan Pengurusan Utama yang Tamat Tempoh dalam Peta Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-20 18:48:16779semak imbas

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

Menguruskan Kekunci Tamat Tempoh dalam Peta Java

Sebagai pembangun Java, mengendalikan mekanisme tamat tempoh kunci selalunya boleh menjadi tugas yang menyusahkan. Ramai yang mencari penyelesaian mudah yang menghapuskan keperluan untuk pembersihan manual dan bergantung semata-mata pada pelaksanaan berasaskan kod. Untuk meringankan cabaran ini, adalah berbaloi untuk mendalami pustaka Google Collections (kini Guava).

Memperkenalkan MapMaker dan CacheBuilder

Guava menawarkan dua alatan berkuasa untuk mengurus berasaskan masa peta: MapMaker dan CacheBuilder. MapMaker membenarkan penyesuaian peta yang fleksibel, termasuk keupayaan untuk menetapkan masa tamat tempoh untuk entrinya. CacheBuilder, yang diperkenalkan dalam Guava 10.0, menyediakan antara muka yang dimodenkan untuk mengkonfigurasi mekanisme caching.

Menetapkan Tempoh Tamat Tempoh

Untuk mengkonfigurasi tempoh tamat tempoh untuk entri peta, anda boleh menggunakan yang berikut kaedah:

  • MapMaker: tamat tempoh (tempoh panjang, unit TimeUnit)
  • CacheBuilder: tamat tempohAfterWrite(tempoh panjang, unit TimeUnit) atau expireAfterAccess(tempoh lama, unit TimeUnit)

Contoh Pelaksanaan menggunakan 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);
         }
       });

Peningkatan dalam Jambu Batu 10.0Dalam Guava 10.0, kaedah MapMaker asal telah ditamatkan dan memihak kepada CacheBuilder. Contoh berikut menunjukkan penggunaan CacheBuilder:

Dengan memanfaatkan alatan ini, anda boleh menguruskan peta berasaskan masa dengan mudah di Java, memastikan pembersihan automatik kunci tamat tempoh dan mengoptimumkan kecekapan mekanisme pengendalian data anda.
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);
          }
        });

Atas ialah kandungan terperinci Bagaimanakah Guava's MapMaker dan CacheBuilder Memudahkan Pengurusan Utama yang Tamat Tempoh dalam Peta Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn