The Wayback Machine - https://web.archive.org/web/20190919122152/https://github.com/ben-manes/caffeine
Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

A high performance caching library for Java 8
Java Shell
Branch: master
Clone or download
ben-manes Add simulator reader and rewriter for AdaptiveClimb policy
This eviction policy is still in development and the authors wish to use
our simulator in their evaluations. Their policy is in C and uses a line
deliminated format. A trace reader is implemented for supporting the
files they use already.

A simple trace rewriter is provided to simplify converting into an
output format. This way the authors can convert formats we support, like
ARC, into their format. Then they can evaluate by running both simulators
in parallel.
Latest commit 19f0911 Aug 26, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
caffeine Add simulator reader and rewriter for AdaptiveClimb policy Aug 26, 2019
config Add simulator reader and rewriter for AdaptiveClimb policy Aug 26, 2019
examples Use https in build files (fixes #301) Feb 26, 2019
gradle Add simulator reader and rewriter for AdaptiveClimb policy Aug 26, 2019
guava Improve META-INF jar metadata (fixes #325) Aug 3, 2019
jcache Improve META-INF jar metadata (fixes #325) Aug 3, 2019
simulator Add simulator reader and rewriter for AdaptiveClimb policy Aug 26, 2019
wiki Include adaptivity in efficiency stats Feb 24, 2019
.gitattributes Restore trace files that were previously in LFS Aug 4, 2019
.gitignore Minor test gc optimization Feb 22, 2019
.travis.yml Support prompt expiration via an optional scheduler thread (fixes #195) Aug 3, 2019
CONTRIBUTING.md Add CONTRIBUTING.md for CLA pull request checks May 18, 2015
LICENSE Minor touchups Apr 8, 2015
README.md Release 2.8 Aug 6, 2019
build.gradle Release 2.8 Aug 6, 2019
checksum.properties Add simulator reader and rewriter for AdaptiveClimb policy Aug 26, 2019
gradle.properties Support prompt expiration via an optional scheduler thread (fixes #195) Aug 3, 2019
gradlew Add work-around for google/error-prone#434 Jul 17, 2016
gradlew.bat Add work-around for google/error-prone#434 Jul 17, 2016
settings.gradle Enable checksum verification plugin only on CI Aug 4, 2019
travis.sh Fix spotbugs-jmh JMHIGSPRET error Jul 9, 2019

README.md

Build Status Coverage Status Maven Central JavaDoc License Stack Overflow

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.

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
  • Infinispan: Distributed in-memory data grid
  • Ratpack: Lean & powerful HTTP apps
  • Corfu: A cluster consistency platform
  • Grails: Groovy-based web framework
  • Orbit: Virtual actors on the JVM
  • Finagle: Extensible RPC system
  • Neo4j: Graphs for Everyone

In the News

Download

Download from Maven Central or depend via Gradle:

compile 'com.github.ben-manes.caffeine:caffeine:2.8.0'

// Optional extensions
compile 'com.github.ben-manes.caffeine:guava:2.8.0'
compile 'com.github.ben-manes.caffeine:jcache:2.8.0'

See the release notes for details of the changes.

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

You can’t perform that action at this time.