MongoDB 与 Cassandra


技术方面

1.数据结构

MongoDB使用文档型存储,其数据结构为与JSON类似的BSON结构,而Cassandra支持的是key-value式存储,而每个key-value还会保存一个时间段,这个时间段实际上起到了版本控制的作用。

2.索引结构

MongoDB的索引几乎与关系型数据库完全一样,其普通索引、联合索引、唯一索引的意义和实现上都可以参考对MySQL索引的理解。而Cassandra由于其是一个key-value结构的存储,如果你要对value进行条件查找,那么就必须建立反向索引,重新建立一个value-key的键值对。

3.部署

MongoDB提供了Replica Sets的高可用部署方式,配置好RS的节点后,整个集群会自动选举出Primary机器供写入操作,并自动复制数据到其它节点。它还具有故障后自动选举新的主机的机制。而Cassandra提供的策略更为灵活,它通过一种对网络结构可感知的机制,它让你可以配置数据是备份在本地网络中的其它节点还是备份到远端的数据中心。

4.第三方客户端

这也是boxedice选择MongoDB的另一个原因,MongoDB拥有非常广泛的客户端支持,几乎所有流行语言都有其操作客户端。而且这些客户端几乎都是由10gen官方开发并维护的。而Cassandra仅有Java和Python的官方客户端,剩下的都是一些自发的第三方客户端。

相关内容