Redis 2.0.0 RC1 just released
code.google.com
code.google.com
Redis is also great because it's essentially a collection of data structures with concurrent programming primitives, persistence added on top. Data structures mean you can offload quite a bit of work onto it. For example, we use it to cache search results — and you can do results paging entirely from within redis (LRANGE).
It isn't really comparable to Cassandra, they really do different things. Also, I am not a fan of the whole "NoSQL" thing. I use PostgreSQL when it makes sense, and Redis when Redis makes sense.
Yet, I don't understand why people use such superlatives constantly about it. Is anyone else a happy user but a bit overwhelmed by the hype? (And i hesitate to use that word because it sounds overly negative.) Call me a student of human psychology noticing a trend that in this case happens to be in my interests. It would be much more irritating if I hated Redis - I don't, but I still can't ignore the squirmy feeling i get when I read about it...
I can honestly say I'll never look back. Traditional SQL had a nice run but the incredible gains in simplicity and performance with nosql are indisputable - especially performance.
Case in point: In our initial testing it looks like the Redis setup will be able to support approx 10,000 accounts on one modest dedicated server vs about 100-200 accounts using Postgres.
antirez has written a lot about Redis virtual memory, which is worth checking out if you are using Redis:
* http://antirez.com/post/redis-virtual-memory-story.html
* http://code.google.com/p/redis/wiki/VirtualMemorySpecificati...
* http://code.google.com/p/redis/wiki/VirtualMemoryUserGuide
Redis 2.2.0 will be a memory optimization release so even with VM disabled this new version of Redis is going to take a very small percentage of the current memory in order to store small lists and sets (for instance less than ~200 elements), like it happens already with hashes.
* http://amix.dk/blog/post/19507#Whats-new-in-Redis-2-0
(covers VM, transactions, hash data type and pub/sub commands)
Redis is a swiss army knife, Cassandra is a Ka-Bar.
* Redis is much easier to understand, since Redis is a key-value store with rich datatypes (such as lists, sets and hashes). Cassandra is a database paradigm shift build to solve Google scale problems.
* Redis perfomance is similar to memcached - and memcached's perfomance is pretty amazing.
I would only pick something like Cassandra if I had to store a lot of data on a large number of computers. If I wanted to do something fast and I know that my data won't grow to terabytes then Redis is a very good choice.
In a nutshell I use Postgres for the relatively static data and Cassandra for the very high volume transactional data. I use Redis for ad-hoc data structures and some caching. The natural fit means I'm not jamming de-normalized data into a relational database for performance reasons. Hope this helps.