我没有使用 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 和 CouchDB

比较 MongoDB、CouchDB 和 RavenDB 第1部分比较 MongoDB、CouchDB 和 RavenDB 第2部分

RavenDB 给我留下了深刻的印象。它还支持事务和触发器,但许可不太友好。

一些 论点 为什么选择来自 Ayende(RavenDB 的创建者)的 RavenDB

在除了其他链接,看看在调查的分布式数据库与此如果是需要看看其他NoSQL数据库的特点以及他们如何回应 - [MongoDB的和Foursquare - 什么如果。

最后,[NoSQLSummer]有很多好论文描述各种产品的存在并且每一个的理论基础。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top