In this post in my NoSQL Series I wanted to briefly cover a few remaining NoSQL options. I tested these briefly but did not try to tackle a full proof-of-concept with any of these due to time.
Memcached is a giant associative in-memory array that can be scaled-out and sharded across multiple nodes. I've used this in the past as a caching mechanism for websites I've created with great success. We didn't feel in-memory was a good options for our requirements.
Cassandra was originally an internal Facebook project. It too is a distributed key/value store with a similar data model to BigTable. Balanced sharding is native. Querying is via Hadoop. It is optimized for writes over reads which is a big difference to other distributed key stores.
Redis is architecturally similar to Memcached. I use this extensively for smaller web projects that I do. It runs entirely in RAM but is persisted to disk. My only complaint is that you get really excellent performance one minute, and horrendous performance the next. There is no gradual degradation of performance. This happens when your data set cannot fit fully into available RAM. When I notice this happening I restart Redis, which effectively blows away my cache unfortunately, and everything hums again. Sharding is your responsibility if you choose to scale-out.
data architecture nosql