主流 NoSQL 数据库对比

最近在了解 NoSQL,无意间发现这篇文章整理的比较全面,包含了主流的几个 NoSQL 数据库,如CouchDB、Cassandra、MongoDB。我翻译一下,先筛选了一些资料,计划持续跟进。不过详细地特性描述还是请参见原文或者项目文档。以下顺序按项目名称排序。个人水品有限,恳请各位指正。

Cassandra

Key Value
编写语言 Java
项目侧重点 BigTable 以及 Dynamo
许可 Apache
协议 自定义协议的,或者 Thrift(一种二进制协议)
最佳实践 应用的写操作多于读取操作,例如日志模块中。Cassandra 可以用于银行、金融领域

CouchDB

Key Value
编写语言 Erlang
项目侧重点 数据库的一致性,以及易用性
许可 Apache
协议 HTTP/REST
最佳实践 用于存放持续增长、偶尔改变的数据。例如适用于客户关系管理系统(CRM)、内容管理系统(CMS)等。

HBase

Key Value
编写语言 Java
项目侧重点 处理规模在十亿行 × 百万列的数据表
许可 Apache
协议 HTTP/REST/Thrift
最佳实践 底层借住了Hadoop以及Map/Reduce技术,可以用来实时读写大数据中的随机数据。

Membase

Key Value
编写语言 Erlang & C
项目侧重点 兼容 Memcache,支持持久性和集群
许可 Apache
协议 Memcached
最佳实践 适用于低延迟的数据访问、高并发、高可用性的应用中。

MongoDB

Key Value
编写语言 C++
项目侧重点 保留一些类似 SQL 的特性,例如索引、查询。
许可 AGPL
协议 自定义的,或者如同BSON的二进制协议。
最佳实践 偏爱动态查询;偏爱预定义的索引而不是 Map/Reduce 函数;想用 CoachDB,但是数据变化太频繁。

Neo4j (V1.5M02)

Key Value
编写语言 Java
项目侧重点 图形数据库
许可 GPL,部分功能以AGPL以及商业协议发布
协议 HTTP/REST,或者 Java
最佳实践 用于图形风格,或者与数据有紧密复杂关联的。

Redis (V2.4)

Key Value
编写语言 C/C++
项目侧重点 极快的速度
许可 BSD
协议 类似 telnet
最佳实践 适用于快速变化的数据,并且数据库的规模是可以预见的。例如股票分析、分析、实时数据收集、实时通信。

Riak (V1.0)

Key Value
编写语言 Erlang 和 C++,部分用 JavaScript 实现
项目侧重点 容错
许可 Apache
协议 HTTP/REST 或者自定义的协议
最佳实践 如果想用类似于 Cassandra 的 NoSQL 数据库,但却搞不定臃肿、复杂的数据库。可能使用的场景包括,销售数据收集、工业控制系统,以及某些秒级掉线时间都会造成伤害的地方。

《主流 NoSQL 数据库对比》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>