Both reference data (shared read) and activity data (exclusive write) are ideal for caching. However, not all application data falls into these two categories. There is data that is shared, concurrently read and written into, and accessed by a large number of transactions.
MemcacheD is typically used in the LAMP/J stack. MemcacheD is essentially an implementation of a distributed hash table across a cluster, each with large memory. It supports only object get and put operations; there is no support for transactions or query. Also, MemcacheD does not provide any support for availability. Most Web applications primarily use MemcacheD for caching large amounts of reference data. For high availability, these applications build custom solutions.
Oracle (Tangosol) Coherence, Gemstone Gemfire are two of the leading cache providers in the enterprise application space. Coherence is a Java-based distributed cache that is highly scalable and available for enterprise applications. Like MemcacheD, Coherence supports a DHT (distributed hash table) for scalability. However, unlike MemcacheD, Coherence provides high availability by implementing replicated, quorum-based data consistency protocols. Coherence also supports distributed notifications and invalidations.
Microsoft info bytes, code named ‘Velocity’, offers distributed caching functionality like competitor products.