Defines contract for concurrently managed data region.
It should be able to lock an specific cache entry in an atomic operation.
When a entry is locked another process should not be able to read or write the entry. All evict operation should not consider locks, even though an entry is locked evict should be able to delete the entry and its lock.
Get all items from the cache identified by $keys.
It returns NULL if some elements can not be found.
Determine whether this region contains data for the given key.
put(CacheKey $key, CacheEntry $entry, Lock|null $lock = null)
Put an item into the cache.