我没有使用NoSQL数据库系统的经验,但如果我必须选择最知名的一个(MongoDb,Cassandra,CouchDb,Redis),有人可以描述每个系统的相关主要特征/差异吗?关于他们的能力,我应该知道什么可能会影响我使用的NoSQL系统的选择>
答案 0 :(得分:1)
我最近正在就这个话题进行一些研究。我可以给你发一些链接..
NoSQL DB的好categorization。
Comparing MongoDB和CouchDB
比较MongoDB,CouchDB和RavenDB Part1 比较MongoDB,CouchDB和RavenDB Part2
RavenDB让我印象深刻。它还支持事务和触发器,但许可证并不那么友好。
一些arguments为什么来自Ayende的RavenDB(RavenDB的创建者)
答案 1 :(得分:1)
Redis是键值商店。您通常可以在单个键下插入原始值(int,string,bool)或基元数组。检索数据通常仅限于按键查询。这些是最基本的NoSQL数据库。
Cassandra是专栏家族商店。它类似于键值存储,但支持将键值对嵌套到最多四个级别。查询仅限于按键和map-reduce函数查询。这种类型的数据库具有相当困难的数据模型(does 'supercolumn' ring any bells?),并且对于极大量的数据非常专业。
MongoDB和CouchDB都是文档数据库。它们都存储JSON文档,这些文档不受模式限制,为您提供了很大的灵活性。与其他类型的NoSQL数据库相比,数据库允许您查询这些文档的内容,这使得检索数据变得非常容易。还支持Map-reduce功能。
Martin Fabik的回答包含一些与MongoDB和CouchDB比较的良好链接。
Ayende有一系列名为That No SQL Thing的博客文章,可以处理这些类型。这是对NoSQL概念,不同类型的NoSQL数据库以及如何查询每个数据库的一个很好的介绍。我强烈建议你阅读他关于我上面提到的数据库类型的文章,它们非常有启发性!
答案 2 :(得分:0)
除了其他链接之外,请看看Survey of Distributed Databases以及如果看看其他NoSQL数据库的特征以及它们如何响应的内容 - [MongoDB和Foursquare - 如果有什么? ]
最后,[NoSQLSummer]有很多优秀的论文描述了各种产品以及每种产品的理论基础。