Caffeine is a high performance, near optimal caching library based on Java 8. For more details, see our user's guide and browse the API docs for the latest release.
Caffeine provides an in-memory cache using a Google Guava inspired API. The improvements draw on our experience designing Guava's cache and ConcurrentLinkedHashMap.
LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
.maximumSize(10_000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.refreshAfterWrite(1, TimeUnit.MINUTES)
.build(key -> createExpensiveGraph(key));
Caffeine provides flexible construction to create a cache with a combination of the following features:
In addition, Caffeine offers the following extensions:
Use Caffeine in a community provided integration:
Powering infrastructure near you:
Download from Maven Central or depend via Gradle:
compile 'com.github.ben-manes.caffeine:caffeine:2.8.5'
// Optional extensions
compile 'com.github.ben-manes.caffeine:guava:2.8.5'
compile 'com.github.ben-manes.caffeine:jcache:2.8.5'
See the release notes for details of the changes.
Snapshots of the development version are available in Sonatype's snapshots repository.