Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

This version now uses O(1) queues as described in the paper by storing
the prev/next on the entry. A sentinel node is used as the head/tail of
the list in the hierarchical cost wheel.

The prior change allowed the Admittor to accept an access event for
future cost-aware policies. This now better mirrors the style used
elsewhere for key-only policies by making the event first class.
2f494fd

Git stats

Files

Permalink
Failed to load latest commit information.

Build Status Coverage Status Maven Central JavaDoc License Stack Overflow

Caffeine is a high performance, near optimal caching library. For more details, see our user's guide and browse the API docs for the latest release.

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.

LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
    .maximumSize(10_000)
    .expireAfterWrite(5, TimeUnit.MINUTES)
    .refreshAfterWrite(1, TimeUnit.MINUTES)
    .build(key -> createExpensiveGraph(key));

Features at a Glance

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:

  • Dropwizard: Ops-friendly, high-performance, RESTful APIs
  • Cassandra: Manage massive amounts of data, fast
  • Accumulo: A sorted, distributed key/value store
  • HBase: A distributed, scalable, big data store
  • Apache Solr: Blazingly fast enterprise search
  • Infinispan: Distributed in-memory data grid
  • Redisson: Ultra-fast in-memory data grid
  • OpenWhisk: Serverless cloud platform
  • Corfu: A cluster consistency platform
  • Grails: Groovy-based web framework
  • Finagle: Extensible RPC system
  • Neo4j: Graphs for Everyone
  • Druid: Real-time analytics

In the News

Download

Download from Maven Central or depend via Gradle:

implementation 'com.github.ben-manes.caffeine:caffeine:3.0.1'

// Optional extensions
implementation 'com.github.ben-manes.caffeine:guava:3.0.1'
implementation 'com.github.ben-manes.caffeine:jcache:3.0.1'

See the release notes for details of the changes.

Snapshots of the development version are available in Sonatype's snapshots repository.