Cache<K, V> In general, a cache is a key/value store that has a maximum storage capacity and exposes methods to support CRUD operations to provide temporary storage which maintains a single copy of items that are expensive to create or load, for example via remote network calls. 
CacheCostFactor<K> In parallel to the Cache Replacement Policy, the optional Cost Factor feature described here provides the eviction mechanism for a Cache implementation to remove one or more existing cache entries so that a new item can be added (via put(Object, Object, double)) when the aggregated cost exceeds the maximum total cost:

  1. During cache initialization, the cache implementation should have method(s) to let the user specify the maximum total cost, and a CacheCostFactor instance that implements onExceedMaxCost(List)


CacheBase<K, V> Abstract class for Cache implementations. 
CacheEntry<K, V> A read-only helper class used as the return value of getEntry(Object)
CompositeCache<K, V>


is a multi-level cache container that implements the Cache interface. 
MemoryCache<K, V> MemoryCache is a fixed size in-memory cache that uses weak reference keys to store a set of values with the following features and options:
  1. LRU (Least Recently Used) Cache Replacement Policy: Each time a value is accessed, it is moved to the end of a queue in descending LRU order. 
SecureStoreCache<V extends Serializable> A SecureStoreCache is a fixed size LRU (Least Recently Used) cache that contains key-value pairs persisted in an encrypted database.