My favorites | Sign in
Logo
                

Redis 2.0.0 Stable is out!, Redis 2.0 is a major new version of Redis, with tons of new features, more speed, new data types, and less memory used. You can find a raw list of what is new reading the Redis 2.0.0 Changelog page.

Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth. Redis supports different kind of sorting abilities.

In order to be very fast but at the same time persistent the whole dataset is taken in memory, and from time to time saved on disc asynchronously (semi persistent mode) or alternatively every change is written into an append only file (fully persistent mode). Redis is able to rebuild the append only file in background when it gets too big.

Redis supports trivial to setup master-slave replication, with very fast non-blocking first synchronization, auto reconnection on net split, and so forth.

Redis is written in ANSI C and works in most POSIX systems like Linux, *BSD, Mac OS X, Solaris, and so on. Redis is free software released under the very liberal BSD license. Redis is reported to compile and work under WIN32 if compiled with Cygwin, but there is no official support for Windows currently.

All the new work on Redis is sponsored by:

Past Redis work was sponsored by: (See the Sponsorship History for a list of all the sponsors)

Beyond the key-value model

It is possible to think at Redis as a data structures server, it is not just another key-value DB, see all the commands supported by Redis to get the first feeling. Redis supports operations like atomic push and pop of elements on lists, taking ranges of elements from this lists at once, trimming of lists, server-side intersections of sets and even sorting data! To show our points we wrote a simple Twitter clone with PHP + Redis: it's a very simple but still a real world example of web application, the article explains step by step how to write scalable applications with Redis.

Supported languages

(Please make sure to also check the more specific Supported Languages section of the documentation. But it's currently a draft so the "master" list is the following).

Also there are other Redis related projects that are not library clients:

Speed

Redis is pretty fast!, 110000 SETs/second, 81000 GETs/second in an entry level Linux box. Check the benchmarks.

Sharding

Redis supports client-side sharding via consistent hashing. Currently there is no support for fail tolerance nor to add or remove clusters at run time.

The Redis Cluster project is going to be our next priority after the release of Redis 2.0.0. Redis Cluster is an higher level layer implemented as a different decoupled component using normal Redis instances as "Data Nodes". Redis Cluster will support adding and removing nodes while the system is running and fault tolerance.

Currently if you use Redis as cache the best thing to do is to use client support for consistent hashing. When using Redis as data store you can perform application level sharding, for instance moving different users in different Redis instances, or vertical sharding moving different kind of objects in different Redis instances.

Learn more!

The IRC channel and the Group are the best places to discuss about the design of your application using Redis. How to organize data to get the best performances and memory usage.

Programming examples

Replication Quick Start

By default you can run Redis without a config file. For replication, at least in the slave, you need to load one. Just use ./redis-server redis.conf. All you have to do to make a Redis instance a slave of some other Redis server is to uncomment the slaveof <hostname> <port> line in the config file and re-run the slave. The two servers will sync and you can ask for the same queries in both to check the slave is actually a copy of the master. Learn more about replication...

Who is using Redis?

This is a very incomplete list, at this stage Redis is used by many companies.

If you use Redis in your startup drop me an email or tweet me @antirez and get listed here.

Road map

Please check the TODO file.

Credits

Check the Credits page









Powered by Google Project Hosting