Redis is a free and open source key-value database, often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Redis is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists and sets with atomic operations to push/pop elements.
In order to be very fast but at the same time persistent the whole dataset is taken in memory and from time to time and/or when a number of changes to the dataset are performed it is written asynchronously on disk.
You may lost the last few queries that is acceptable in many applications but Redis is as fast as an in memory DB (beta 6 of Redis comes with initial support for master-slave replication in order to solve this problem by redundancy).
Compression and other interesting features are a work in progress. Redis is written in ANSI C and works in most POSIX systems like Mac OS X, Linux, *BSD, and so on.
· Ruby main repository written by Ezra Zygmuntowicz (aka ezmobius)
· Python main repository written by Ludovico Magnocavallo (aka ludo)
· PHP main repository written by Ludovico Magnocavallo (aka ludo)
· PHP client lib written in C, as a PHP module! http://code.google.com/p/phpredis/ thanks to Alfonso Jimenez.
· Erlang main repository written by Valentino Volonghi of Adroll
· Tcl (the official version is included in the Redis tarball since it's maintained by myself, now you can find it in the Git repository).
· Perl bindings for Redis are available in this SVN repository thanks to Dobrica Pavlinusic.
· Lua bindings for Redis are available in this git repository (and as well as in the Redis git) thanks to Daniele Alessandri.
· Java has two client libraries projects: JDBC-Redis that as you can guess from the name is a client implementing the JDBC API, and JRedis that is JCA compliant. Both libs are actively developed and good quality, I suggest you to check both. Also note that JRedis plans to release support for asynchronous communication between the client and Redis.
· Scala bindings for Redis are available in this Git repository, thanks to Alejandro Crosa.
· Apple Xcode (to build from source)
What's New in This Release: [ read full changelog ]
UPGRADE URGENCY: MODERATE, nothing very critical but upgrading is suggested if you experienced:
· Strange issues with Lua scripting.
· Not reconfigured reappearing master using Sentinel.
· Server continuously trying to save on save error.
· This version of Redis may also help with AOF and slow / busy disks and latency issues.
· FIX: Throttle BGSAVE attempt on saving error.
· FIX: redis-cli: raise error on bad command line switch.
· FIX: Redis/Jemalloc Gitignore were too aggressive.
· FIX: Test: fix RDB test checking file permissions.
· FIX: Sentinel: always redirect on master->slave transition.
· FIX: Lua updated to version 5.1.5. Fixes rare scripting issues.
· NEW: AOF: improved latency figures with slow/busy disks.
· NEW: Sentinel: turn old master into a slave when it comes back.
· NEW: More explicit panic message on out of memory.
· NEW: redis-cli: --latency-history mode implemented.