Cache
Caffeine provides an in-memory cache using a Google Guava inspired API. The improvements draw on our experience designing Guava’s cache and ConcurrentLinkedHashMap.
Features at a Glance
Caffeine provides flexible construction to create a cache with a combination of the following features:
- automatic loading of entries into the cache, optionally asynchronously
- size-based eviction when a maximum is exceeded based on frequency and recency
- time-based expiration of entries, measured since last access or last write
- asynchronously refresh when the first stale request for an entry occurs
- keys automatically wrapped in weak references
- values automatically wrapped in weak or soft references
- notification of evicted (or otherwise removed) entries
- writes propagated to an external resource
- accumulation of cache access statistics
In addition, Caffeine offers the following extensions:
Use Caffeine in a community provided integration:
- Spring Cache: As of Spring 4.3 & Boot 1.4
- Scaffeine: Scala wrapper for Caffeine
- ScalaCache: Simple caching in Scala
- Camel: Routing and mediation engine
- jooby: Modular micro framework
- Druid: Real-time analytics
Powering infrastructure near you:
- Cassandra: Manage massive amounts of data, fast
- Infinispan: Distributed in-memory data grid
- Akka: Build reactive applications easily
- Ratpack: Lean & powerful HTTP apps
- Corfu: A cluster consistency platform
- Orbit: Virtual actors on the JVM
- Finagle: Extensible RPC system
- Neo4j: Graphs for Everyone
In the News
- A short look at what Caffeine brings to your applications.
- An in-depth description of Caffeine’s architecture.
- Caffeine is presented as part of a research paper evaluating its novel eviction policy.
- TinyLFU: A Highly Efficient Cache Admission Policy by Gil Einziger, Roy Friedman, Ben Manes
On the radar,
- Early discussions with HBase, Solr, and Play!
- W-TinyLfu implemented by go-tinylfu, mango-cache, transitory, and ohc
Download
Download from Maven Central or depend via Gradle:
Git地址:https://github.com/ben-manes/caffeine.git