Skip to content
Ben Manes edited this page Aug 7, 2023 · 21 revisions

Caffeine is a high performance Java caching library providing a near optimal hit rate.

A Cache is similar to ConcurrentMap, but not quite the same. The most fundamental difference is that a ConcurrentMap persists all elements that are added to it until they are explicitly removed. A Cache on the other hand is generally configured to evict entries automatically, in order to constrain its memory footprint. In some cases a LoadingCache or AsyncLoadingCache can be useful even if it doesn't evict entries, due to its automatic cache loading.

Caffeine provide flexible construction to create a cache with a combination of the following optional features:

To improve integration, JSR-107 JCache and Guava adapters are provided in extension modules. JSR-107 standardizes a Java 6 based API to minimize vendor specific code at the cost of features and performance. Guava's Cache is the predecessor library and the adapters provide a simple migration strategy. Additional integrations with other libraries is provided in the examples section.

Contributions are welcome. Please read the design document, developer setup guide, and roadmap.

Clone this wiki locally