None

Redis

November 24, 2009

Redis is a new key-value/noSql type datastore. There are client libraries in lots of languages, including Java and Python.

The author of this blog used it for loading data in from a CSV in one python console, whilst running queries on the half imported data set from another. Nice.

It's also somewhat speedy:

$ ./redis-benchmark -n 100000
====== SET ======                                                     
  100006 requests completed in 1.09 seconds                           
  50 parallel clients                                                 
  3 bytes payload                                                     
  keep alive: 1

46.07% <= 0 milliseconds
99.73% <= 1 milliseconds
99.96% <= 2 milliseconds
100.00% <= 3 milliseconds
92001.84 requests per second

====== GET ======
  100004 requests completed in 1.09 seconds
  50 parallel clients                      
  3 bytes payload                          
  keep alive: 1

45.72% <= 0 milliseconds
99.96% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 3 milliseconds
91831.04 requests per second

====== INCR ======
  100007 requests completed in 1.19 seconds
  50 parallel clients                      
  3 bytes payload                          
  keep alive: 1

40.77% <= 0 milliseconds
99.99% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 3 milliseconds
84180.98 requests per second

====== LPUSH ======
  100001 requests completed in 1.01 seconds
  50 parallel clients                      
  3 bytes payload                          
  keep alive: 1

49.58% <= 0 milliseconds
99.97% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 3 milliseconds
100.00% <= 4 milliseconds
98815.22 requests per second

====== LPOP ======
  100001 requests completed in 1.09 seconds
  50 parallel clients                      
  3 bytes payload                          
  keep alive: 1

45.91% <= 0 milliseconds
99.98% <= 1 milliseconds
100.00% <= 2 milliseconds
100.00% <= 3 milliseconds
92166.82 requests per second

====== PING ======
  100005 requests completed in 0.93 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

53.54% <= 0 milliseconds
99.99% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 3 milliseconds
100.00% <= 4 milliseconds
107301.51 requests per second

UPDATE

Here's a great tutorial on using Redis: http://simonwillison.net/static/2010/redis-tutorial/