Kafein adalah perpustakaan caching yang berkinerja tinggi, dekat optimal. Untuk detail lebih lanjut, lihat panduan pengguna kami dan telusuri dokumen API untuk rilis terbaru.
Cache
Kafein menyediakan cache dalam memori menggunakan API yang terinspirasi Google Guava. Perbaikan mengacu pada pengalaman kami merancang cache juva dan concurrentlinkedhashmap.
LoadingCache < Key , Graph > graphs = Caffeine . newBuilder ()
. maximumSize ( 10_000 )
. expireAfterWrite ( Duration . ofMinutes ( 5 ))
. refreshAfterWrite ( Duration . ofMinutes ( 1 ))
. build ( key -> createExpensiveGraph ( key ));
Fitur sekilas
Kafein menyediakan konstruksi yang fleksibel untuk membuat cache dengan kombinasi fitur opsional berikut:
- pemuatan entri otomatis ke cache, secara opsional tidak sinkron
- Penggusuran berbasis ukuran ketika maksimum dilampaui berdasarkan frekuensi dan kebaruan
- kedaluwarsa entri berbasis waktu, diukur sejak akses terakhir atau penulisan terakhir
- menyegarkan secara asinkron saat permintaan basi pertama untuk entri terjadi
- Kunci secara otomatis dibungkus dengan referensi yang lemah
- Nilai secara otomatis dibungkus dengan referensi yang lemah atau lunak
- Pemberitahuan entri yang diusir (atau dihapus)
- menulis disebarkan ke sumber daya eksternal
- akumulasi statistik akses cache
Selain itu, kafein menawarkan ekstensi berikut:
- JSR-107 JCACHE
- Adaptor jambu
- Simulasi
Gunakan kafein dalam suatu komunitas memberikan integrasi:
- Kerangka Play: Kerangka Web Kecepatan Tinggi
- Micronaut: kerangka kerja modern dan full-stack
- Cache Musim Semi: pada Spring 4.3 & Boot 1.4
- Coroutines: Kotlin Coroutines Extension
- Bootik: Platform Java yang cepat dan sederhana
- Quarkus: Java subatomik supersonik
- Unta: mesin perutean dan mediasi
- Scaffeine: Scala Wrapper untuk kafein
- Scalacache: caching sederhana di scala
- Jhipster: Hasilkan, Kembangkan, Menyebarkan
- Aedile: Pembungkus Kotlin untuk kafein
Powering Infrastructure di dekat Anda:
- Dropwizard: OPS-Friendly, berkinerja tinggi, RESTFUL API
- Cassandra: Kelola sejumlah besar data, cepat
- Koherensi: Misi Kisi Data In-Memory Kritis
- Accumulo: Toko kunci/nilai yang disortir dan didistribusikan
- Kafka: platform streaming acara terdistribusi
- HBase: penyimpanan data besar yang didistribusikan, terukur
- Apache Solr: Pencarian perusahaan yang sangat cepat
- Infinispan: Kisi Data Dalam Memori Terdistribusi
- Redisson: Kisi Data dalam-Memori yang sangat cepat
- OpenWhisk: Platform Cloud Tanpa Server
- Corfu: Platform Konsistensi Cluster
- Cawan: Kerangka Web Berbasis Groovy
- Finagle: Sistem RPC yang dapat diperluas
- Neo4j: grafik untuk semua orang
- Druid: Analisis waktu nyata
Dalam berita
- Deskripsi mendalam tentang arsitektur kafein.
- Desain Cache Modern: Bagian #1, Bagian #2 (Slide) Di HighScalability
- Kafein disajikan sebagai bagian dari makalah penelitian yang mengevaluasi kebijakan penggusuran novelnya.
- Tinylfu: Kebijakan penerimaan cache yang sangat efisien oleh Gil Einziger, Roy Friedman, Ben Manes
- Manajemen cache perangkat lunak adaptif oleh Gil Einziger, Ohad Eytan, Roy Friedman, Ben Manes
- Ukuran Cache Cache Cache Cache Manajemen yang ringan oleh Gil Einziger, Ohad Eytan, Roy Friedman, Ben Manes
Unduh
Unduh dari Maven Central atau bergantung melalui Gradle:
implementation( " com.github.ben-manes.caffeine:caffeine:3.1.8 " )
// Optional extensions
implementation( " com.github.ben-manes.caffeine:guava:3.1.8 " )
implementation( " com.github.ben-manes.caffeine:jcache:3.1.8 " )
Untuk Java 11 atau lebih, gunakan 3.x
jika tidak gunakan 2.x
Lihat catatan rilis untuk detail perubahan.
Snapshots dari versi pengembangan tersedia di repositori snapshots Sonatype.