最著名的 NoSQL 系统之间的主要差异/功能
题
我没有使用 NoSQL 数据库系统的经验,但如果我必须选择最著名的数据库系统之一(MongoDb、Cassandra、CouchDb、Redis),有人可以描述每个数据库系统的相关主要功能/差异吗?关于它们的功能,我应该了解什么可能会影响我使用的 NoSQL 系统的选择>
解决方案
Redis 是一个 键值存储. 。您通常可以在单个键下插入一个原始值(int、string、bool)或一个原始数组。数据的检索通常仅限于按键查询。这些是最基本的NoSQL 数据库。
卡桑德拉是一个 柱式家庭商店. 。它类似于键值存储,但支持键值对的嵌套,最多可达四层深度。查询仅限于按键查询和 Map-Reduce 函数。这种类型的数据库有一个相当困难的数据模型(“超级专栏”是否敲响了警钟?)并且高度专业化,适用于极其大量的数据。
MongoDB 和 CouchDB 都是 文档数据库. 。它们都存储 JSON 文档,不受架构限制,为您提供了很大的灵活性。该数据库允许您查询这些文档的内容,与其他类型的 NoSQL 数据库相比,这使得检索数据变得非常容易。还支持 Map-reduce 函数。
Martin Fabik 的回答包含一些比较 MongoDB 和 CouchDB 的好链接。
Ayende 有一系列博客文章,名为 没有 SQL 的事情 处理这些类型中的每一种。它很好地介绍了 NoSQL 概念、不同类型的 NoSQL 数据库以及如何查询每种数据库。我强烈建议您阅读他关于我上面提到的数据库类型的文章,它们非常有启发性!
其他提示
在除了其他链接,看看在调查的分布式数据库与此如果是需要看看其他NoSQL数据库的特点以及他们如何回应 - [MongoDB的和Foursquare - 什么如果。
最后,[NoSQLSummer]有很多好论文描述各种产品的存在并且每一个的理论基础。