Remote Dictionary Server or Redis is an open-source database which is networked an in-recollection by nature. It stores its keys with optional durability too. If data durability is not central the in-recollection nature of Redis means that it can perform incredibly well in comparison to a database that writes every transmutation to a disk before it warrants that a transaction is fully committed.
Note that every operation by a Redis database is atomic. Heroku, Rackspace and Amazon are some of the common PaaS and IaaS platforms that deploy Redis. The Redis database can bind to a range of language from C, Objective C and C++ through to Lisp, Erlang, Haskell and Haxe plus Java and JavaScript alongside ActionScript, PHP, Ruby, Python and Scala.
- Redis offers automatic failover and holds the full database in memory
- Lua scripting is supported
- Redis can replicate data to your choice of slaves
- Keys in Redis have a limited time-to-live
- LRU eviction are supported for keys
- Publish/Subscribe is fully supported
Redis is very easy to install and it also supports a very large number of data types. Redis databases can be very fast, performing 110,000 SETs in a second, which is about 81,000 GETs in a second. Redis operations are atomic and the database can be used for a range of use cases.
However, developers don’t like the fact that joins are not supported by Redis, and also dislike that full knowledge of Lua is required to code stored procedures. The fact that the full dataset has to fit in memory is also a drawback.