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 

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.


Back to home