Memcached stores data requested on a system in RAM for a specific period of
time to make retrieving that data faster if it is requested again. The time that
data persists can be based on a specific setting, memory needs, and other
criteria. The goal is to reduce the number of times that data stores must be
accessed. Data that is accessed often is held in memory, from where it is
much more quickly retrieved. This can alleviate problems such as a page on a
blog that has suddenly become popular as a result of the URL being posted on
a social networking site. The spike in traffic could be kept manageable
because the content of the blog post is being held in memory instead of being
requested over and over from the database.
MemcacheDB is an implementation of the Memcached API that uses a
key/value format based on Berkeley DB. However, whereas Memcached is
designed as a cache solution to speed up data access from memory,
MemcacheDB is designed as a persistent storage engine. Because it uses the
same API protocol as Memcached, using it is an easy way to add data
persistence where caching is already in place with Memcached.
Memcached is used by sites like Twitter, Reddit, YouTube, and Facebook, and
it is also supported and often used by websites based on content management
systems, such as Drupal and WordPress.
Redis
Initially released in 2009, Redis is intended for applications where
performance and flexibility are more important than persistence and absolute
data integrity. It is an open source key/value store written in C. Keys can
contain strings, hashes, lists, sets, and stored sets. Redis works in RAM for
speed, occasionally dumping to disk. Because actions are performed in
memory, they are done faster. Operations include appending to a string,
incrementing a hash value, pushing to a list, set computations, and more.
Redis is also designed so that master/slave replication is easy to set up.
Riak
Riak (Basho Technologies, Inc.) is a fault-tolerant, distributed database
designed for scalability and use in the cloud. It is masterless, meaning there
should be no single point of failure. It is designed for speed, simplicity, and
stability. Riak is based on a paper by Amazon describing Dynamo, which is
an internal, proprietary system owned by Amazon. The Riak wiki describes
the database in one place as “the most boring database you’ll ever run in
production. No sharding required, just horizontal scaling and straightforward