现在有很多成熟的NoSQL database, 比如 Dex, Neo4J, Membase, KumoFS, Kyoto Tycoon, Redis, MongoDB, CouchDB, Pincaster, Cassandra, Riak and HBase. 之所以市面上有这么多的NoSQL database, 是因为每个database 都是被设计以解决特定的问题,各有其优缺点,所以我们需要基于我们自己的需要去选择合适的database。
1)如何你需要去模拟一个社会关系图 (social graph), Dex 或者Neo4J 这种graph database 是最好的选择。
2) 如果需要快速地获取 value 基于key, 使用 Membase, KumoFS, 或者 Kyoto Tycoon。
3)如果key 指向的是一个比较复杂的结构比如文档,使用 MongoDB 或者 CouchDB. 但是如果只是存储简单的key-value pairs, 这两个database 并不会比Membase 和 Kyoto Tycoon 快,更节省空间。
4)如果你需要处理地理数据,MongoDB, CouchDB, Pincaster 是合适的选择。
5)如果你需要考虑可拓展性,最好的选择是分布式的Cassandra, Riak 或者 HBase.
6) 如果需要存储的对象是列表,集合, 有序集合,以及哈希等结构, Redis 是最好的选择。
参考文章:
Quora: What is the best NoSQL database in terms of performance.