Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. We can run atomic operations on these types, like appending to a string, incrementing the value in the hash, pushing to a list, computing set intersection, union and difference or getting the member with the highest ranking in the sorted set.
In order to achieve its outstanding performance, Redis works with an in-memory dataset. Depending on our use case, we can persist it either by dumping the dataset to the disc every once in a while, or by appending each command to the log. Redis also supports trivial-to-setup master-slave architecture, with very fast non-blocking first synchronization, auto-reconnection on net split and so forth. Other features include Transactions, Publish/Subscribe messaging, Lua Scripting, Keys with a limited time to live, and configuration settings to make Redis behave like a cache.
We can use Redis from most programming languages out there. Redis is written in ANSI C and works in most POSIX systems like Linux, *BSD, OS X without external dependencies. Linux and OSX are the two operating systems where Redis is developed and more tested. As of now Redis has no official version for Windows.