# Package org.qi4j.cache.memcache

Memcache EntityStore CachePool.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  MemcacheConfiguration | Memcache CachePool Configuration.
  MemcachePoolService | Memcache CachePool Service.

- Class Summary
  Class | Description
  --- | ---
  MemcacheAssembler | Memcache CachePool Assembler.
  MemcachePoolMixin | Memcache CachePool Mixin.

## Package org.qi4j.cache.memcache Description

## Memcache EntityStore CachePool.

Memcache has no namespace support. In addition to that, the protocol disallow key listing.

The CachePool contract is to drop a cache once all of its references have been returned.

Therefore, all keys are prefixed, that way;

    cacheId.cacheInstanceId.key

- `cacheId` is the identity of the requested cache
- `cacheInstanceId` is an autogenerated cache instance identifier
- `key` is the original key

In other words and for a given `cacheId`, once all references of the Cache are returned to the CachePool, the next `fetchCache(..)` invocation will generate a new Cache instance identifier and hence use different prefixed keys.

All this allow the Memcache EntityStore CachePool to conform to the CachePool contract despite limitations of the Memcache protocol.