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/