Package com.github.benmanes.caffeine.cache


@NullMarked @CheckReturnValue package com.github.benmanes.caffeine.cache
This package contains in-memory caching functionality. All cache variants are configured and created using the Caffeine builder.

A Cache provides similar characteristics to ConcurrentHashMap, with additional support for policies to bound the map. When built with a CacheLoader, the LoadingCache variant allows the cache to populate itself on a miss and offers refresh capabilities.

A AsyncCache is similar to a Cache, except that a cache entry holds a CompletableFuture of the value. This entry will be automatically removed if the future fails, resolves to null, or based on an eviction policy. When built with a AsyncCacheLoader, the AsyncLoadingCache variant allows the cache to populate itself on a miss and offers refresh capabilities.

Additional functionality such as bounding by the entry's size, removal notifications, statistics, and eviction policies are described in the Caffeine builder.

  • Class
    Description
    A semi-persistent mapping from keys to values.
    Computes or retrieves values asynchronously based on a key, for use in populating a AsyncLoadingCache.
    A semi-persistent mapping from keys to values.
    Cache<K,V extends @Nullable Object>
    A semi-persistent mapping from keys to values.
    Computes or retrieves values, based on a key, for use in populating a LoadingCache or AsyncLoadingCache.
    A builder of Cache, LoadingCache, AsyncCache, and AsyncLoadingCache instances having 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 writes propagated to an external resource notification of evicted (or otherwise removed) entries accumulation of cache access statistics
    A specification of a Caffeine builder configuration.
    Expiry<K,V>
    Calculates when cache entries expire.
    Provides similar behavior to String.intern() for any immutable type.
    A semi-persistent mapping from keys to values.
    Policy<K,V>
    An access point for inspecting and performing low-level operations based on the cache's runtime characteristics.
    A key-value pair that may include policy metadata for the cached entry.
    The low-level operations for a cache with a size-based eviction policy.
    The low-level operations for a cache with a fixed expiration policy.
    The low-level operations for a cache with a fixed refresh policy.
    The low-level operations for a cache with a variable expiration policy.
    The reason why a cached entry was removed.
    An object that can receive a notification when an entry is removed from a cache.
    A scheduler that submits a task to an executor after a given delay.
    A time source that returns a time value representing the number of nanoseconds elapsed since some fixed but arbitrary point in time.
    Weigher<K,V>
    Calculates the weights of cache entries.