我没有NoSQL数据库系统的经验,但是如果我必须选择最著名的数据库系统(MongoDb,Cassandra,CouchDb,Redis),有人可以描述每个数据库的相关主要功能/差异吗?关于它们的功能,我是否应该了解任何可能影响我使用的NoSQL系统的选择>
Redis是一个 键值存储 。通常,您可以在单个键下插入原始值(int,string,bool)或原始数组。数据检索通常仅限于按键查询。这些是最基本的NoSQL数据库。
卡桑德拉(Cassandra)是一家 专栏家庭商店 。它与键值存储类似,但支持最多约4个级别的键值对嵌套。查询仅限于通过键和map- reduce函数进行查询。这种类型的数据库具有相当困难的数据模型(“ supercolumn”会响起钟声吗?),并且高度专用于处理大量数据。
MongoDB和CouchDB都是 文档数据库 。它们都存储JSON文档,不受模式限制,从而为您提供了很大的灵活性。与其他类型的NoSQL数据库相比,该数据库允许您查询这些文档的内容,这使得检索数据非常容易。还支持Map- reduce功能。
Martin Fabik的答案包含一些比较MongoDB和CouchDB的良好链接。
Ayende有一系列博客文章,称为No No SQL Thing,可以处理所有这些类型。这是对NoSQL概念,不同类型的NoSQL数据库以及如何查询它们的一个很好的介绍。我强烈建议您阅读他关于我上面提到的数据库类型的文章,它们很有启发性!