- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我没有使用 NoSQL 数据库系统的经验,但如果我必须选择最知名的系统之一(MongoDb、Cassandra、CouchDb、Redis),有人可以描述每个系统的相关主要特性/差异吗?关于它们的功能,我应该知道什么可能会影响我使用的 NoSQL 系统的选择吗?
最佳答案
Redis 是一个键值存储。您通常可以在单个键下插入原始值(int、string、bool)或原始数组。数据的检索通常仅限于按键查询。这些是最基本的 NoSQL 数据库。
Cassandra 是一个列族存储。它类似于键值存储,但支持键值对最多嵌套大约四层。查询仅限于按键查询和 map-reduce 函数。这种类型的数据库具有相当困难的数据模型 ( does 'supercolumn' ring any bells? ),并且高度专门用于海量数据。
MongoDB 和 CouchDB 都是文档数据库。它们都存储不受模式限制的 JSON 文档,为您提供了很大的灵 active 。该数据库允许您查询这些文档的内容,与其他类型的 NoSQL 数据库相比,这使得检索数据变得非常容易。还支持 Map-reduce 函数。
Martin Fabik 的回答包含一些比较 MongoDB 和 CouchDB 的很好的链接。
Ayende 有一系列博客文章,名为 That No SQL Thing处理这些类型中的每一种。它很好地介绍了 NoSQL 概念、不同类型的 NoSQL 数据库以及如何查询它们中的每一个。我强烈建议你阅读他关于我上面提到的数据库类型的文章,它们很有指导意义!
关于mongodb - 最著名的 NoSQL 系统之间的主要区别/特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4237687/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我是一名优秀的程序员,十分优秀!