Checking Redis for the first time? Here your will find the most important features, and pointers to a lot more information.
Redis is written in ANSI C, and loads the whole dataset in memory, so it is wicked
fast! Up to 110,000 SETs/second, 81,000 GETs/second can be achieved in an entry level Linux box. Read more about Redis
Speed.
Also Redis supports
Pipelining of commands and
getting and setting múltiple values in a single command to speed up communication with the client libraries.
While all the data lives in memory, changes are
asynchronously saved on disk using flexible policies based on elapsed time and/or number of updates since last save.
If you can't afford losing some data, starting on version 1.1 (currently in beta but you can download it from the Git repository) Redis supports an append-only file persistence mode. Check more on
Persistence, or read the
AppendOnlyFileHowto for more information.
Values in Redis can be
Strings as in a conventional key-value store, but also
Lists,
Sets, and
OrderedSets (to be support in
version 1.1). This data types allow pushing/poping elements, or adding/removing them, also perform server side union, intersection, difference between sets, and so forth depending on the types. Redis supports different kind of sorting abilities for
Sets and
Lists.
You can think in Redis as a
Data Structures Server, that allows you to model non trivial problems. Read
Data Types to learn more about the way Redis handle
Strings, and the
Commands supported by
Lists,
Sets and
OrderedSetsRedis operations working on the different Data Types are
atomic, so setting or increasing a key, adding and removing elements from a set, increasing a counter will all be accomplished safely.
Ruby, Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure, choose your poison. Check the list of
Supported Languages for all the details.
If your favorite language is not supported yet, you can write your own client library, as the
Protocol is pretty simple.
Redis supports a very simple and fast Master/Slave replication. Is so simple it takes only one line in the
configuration file to set it up, and 21 seconds for a Slave to complete the initial sync of 10 MM key set in a Amazon EC2 instance.
Read more about Master/Slave
Replication.
Distributing the dataset across multiple Redis instances is easy in Redis, as in any other key-value store. And this depends basically on the
Languages client libraries being able to do so.
Read more about
Sharding if you want to know more abour distributing data and workload in Redis.
TODO
Installing Redis requires little more than downloading it, uncompressing it and running make. Management is near zero, so you can start using Redis in a matter of minutes.
Go on and read about Redis
installation, its
Setup and
Management.
Redis is written in ANSI C and works in most POSIX systems like Linux, BSD, Mac OS X, Solaris, and so on. Redis is reported to compile and work under WIN32 if compiled with Cygwin, but there is no official support for Windows currently.
Redis is free software released under the very liberal BSD license.
Want to get started with Redis? Try the
Quick Start you will be up and running in just a matter of minutes.
Check the
Code Samples and find how you can use Redis with your favorite programming language.
Compare Redis with other key-value stores, like Tokyo Cabinet or Memcached.