各种 NoSQL 的比较

2014-11-24 17:43:47 · 作者: · 浏览: 1

即使关系型数据库依然是非常有用的工具,但它们持续几十年的垄断地位就要走到头了。现在已经存在无数能撼动关系型数据库地位的 NoSQL,当然,这些 NoSQL 还无法完全取代它们。(也就是说,关系型数据库还是处理关系型事务的最佳方式。)


NoSQL 与 NoSQL 之间的区别,要远大于不同的 SQL 数据库之间的区别,所以软件架构师必须要在项目一开始就选好一款合适的 NoSQL。


考虑到这种情况,本文为大家介绍以下几种 NoSQL 之间的区别:Cassandra, Mongodb, CouchDB, Redis, Riak, Couchbase (ex-Membase), Hypertable, ElasticSearch, Accumulo, VoltDB, Kyoto Tycoon, Scalaris, Neo4jHBase


开发语言: C++


主要特性: 保留 SQL 中一些用户友好的特性(查询、索引等)


许可证: AGPL (驱动: 采用Apache许可协议)


数据传输格式: 自定义,二进制( BSON 文档格式)


应用场景:


使用案例:


想布署 MySQL 或 PostgreSQL,但预先定义数据字典让你望而却步。这个时候,MongoDB 是你可以考虑的选项


推荐阅读


开发语言: Erlang、C、以及一些 java script


主要特性: 容错机制(当一份数据失效,服务会自动切换到备份数据,保证服务一直在线 —— 译者注)


许可证: Apache


数据传输格式: HTTP/REST 架构,或自定义二进制格式


应用场景:


使用案例:


销售点数据收集;工厂控制系统;必须实时在线的系统;需要易于升级的网站服务器


开发语言: Erlang


主要特性: 数据一致性;易于使用


许可证: Apache


数据传输格式: HTTP/REST


应用场景:


使用案例:


可用于客户关系管理(CRM),内容管理系统(CMS);可用于主主互备甚至多机互备