Redis

Redis is a BSD licensed, open source, advanced key-value store and cache. It is also referred to as a data structure server as keys can contain hashes, strings, lists, sorted sets, bitmaps and hyperloglogs. Redis stands for Remote Dictionary Server.

The type of a value determines the type of operations that are available for the value itself. Redis supports atomic and high-level server-side operations such as union, intersection, difference between sets and sorting of lists.

Redis development is sponsored by Pivotal Software since May 2013. It is the most popular key-value store according to the monthly ranking by DB-Engines.com. 

A number of languages have Redis bindings which include C, ActionScript , C++, C#, Common Lisp, Clojure,  Dart, Go, Haskell, Erlang, Haxe, Io, JavaScript (Node.js), Java,  Lua, Perl, PHP, Objective-C , Pure Data, Racket, Python,  Ruby, Smalltalk , Scala and Tcl.

Typically the whole dataset is held in memory by Redis. Persistence is reached in two different ways: one is snapshotting which is a semi-persistent durability mode in which the dataset is asynchronously transferred from time to time from memory to disk, written in RDB dump format. Redis can rewrite the append-only file in the background for avoiding an indefinite growth of the journal. It also supports master-slave replication. From any Redis server, data can replicate to any number of slaves. A slave can be a master to another slave. This enables Redis to implement a single-rooted replication tree. The in-memory nature of Redis allows it to perform extremely well when the durability of data is not needed compared to database systems which write every change to disk before seeing a transaction committed. The Redis project has a cluster specification but the cluster feature is currently in Beta stage. Redis is commonly deployed on PaaS or IaaS platforms such as Amazon Web Services, Heroku or Rackspace.