Over the past few years as I gain more and more experience in not only building software and products but also in leading teams and projects…
As expected, Redis performed really really well, its speed is unmatchable by Cassandra and Riak.
However, that’s not the point.
One thing I noticed is that quite a few people don’t really get what ’scalability’ actually means. In this case, Redis does not scale (yet), so comparing the raw performance (on a single machine) isn’t entirely useful.
Both Cassandra and Riak scale. They are key/value solutions designed from the ground up to support distributed computing. The primary reason I wanted to evaluate them, is for their distributed nature - adding/removing nodes without impacting the application means (near) real time, automated scalability.
Riak has better client library support for Ruby, unfortunately it did not perform well against Cassandra. On a single node, it is 3 to 5 times slower than Cassandra, and it even crashed a few times during higher concurrency tests.
Oh and by the way, for simple inserts and writes, MySQL (both MyISAM and InnoDB engines) actually performed better than Cassandra and Riak, but of course, as soon as you throw in a couple of joins, things start to look ugly.
MongoDB has limited scalability via auto-sharding which is currently in alpha. Fortunately for me, I don’t need scalability right away.
What are your thoughts? :)