前不久,我们决定用一款分布式的Nosql来存储一些频繁访问的用户数据,数据量较大。速度最快的是Redis,然而Redis由于集群的部署需要做额外的工作来保证数据的持久化,而单机数据量又不够大,所以我们最终把目标定位到了其它的数据库。如MongoDB,Hbase,Cassandra。下面总结一些我们选择Cassandra的原因。
1.读写速度最快。
这些数据库都能满足我们的需求,至于最终选择哪个,综合一下应该从性能,稳定性上进行取舍。而从一些网上的对比报告看出,Cassandra的读写性能最好。写自然不必说,Cassandra的设计就是为了提升写的效率,写入内存(并且记录日志,周期性的刷入或者必须记录)就返回成功,然后才持久化。读也很快,硬盘中是顺序读,另外又有多级缓存,例如KeyCache,RowCache,Key Filter。
2.稳定性高。
稳定性上主要是考虑的是某个节点挂了怎么办,出现故障怎么办,Cassandra是没有单点故障的,出现故障后,本该写入这个节点的数据会平均的分配到其它节点,并在该节点回复后,写回对应的数据。多重机制保证了某个节点出现故障后,不会对其它节点有太大的影响,不会让集群受不了。
3.绯闻和社区