Web 2.0时代的到来,关系数据库越来越不能满足互联网应用的需求,导致了NoSQL的兴起
NoSQL数据库在大数据领域里越来越受欢迎。
- 数据的高并发读写
- 数据的高可用性
- 海量数据存储
- 海量数据的实时分析
文档型数据库
代表:MongoDB、CouchDB、CouchBase、MarkLogic、Clusterpoint
应用场景:适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。
键值存储数据库
代表:Dynamo、FoundationDB、MemcacheDB、Redis、Riak、Aerospike
应用场景:高读取、快速检索。
图数据库
代表:Neo4j、OrientDB、ArangoDB、MapGraph
应用场景:社会关系,公共交通网络,地图及网络拓谱。
列式数据库
代表:Cassandra、HBase、Accumulo、Druid、Vertica
应用场景:适合于批量数据处理和即席查询。
内存数据库
代表:Redis、Membase
主流非关系型数据库(NoSQL)排名:
第一名:MongoDB
MongoDB是最有名的NoSQL数据库之一。
它由C++撰写而成,是一个面向文档(Document-oriented)的开源数据库,支持扩展且非常易用。
MongoDB由于面向文档,也可以用作文件系统。通过使用分片(Sharding),MongoDB可以实现水平扩展。
在MongoDB中,支持JavaScript作为查询语言,对于流行的JavaScript框架配合使用非常高效。
惊人的性能和新功能将这个NoSQL数据库推向了我们排名中的第一名。
程序员们非常喜欢MongoDB的分片,高级文本检索,gridFS和map-reduce等功能
第二名:Cassandra
Cassandra是一个处理大量结构化数据的分布式数据存储系统。
通常,这些数据分布在许多commodity server上。Cassandra为分配数据提供了最大灵活性。
用户可以添加数据的存储容量,使服务持续保持在线状态,并且这个任务可以轻松完成。
由于群集中的所有节点都是相同的,因此不需要处理复杂的配置。Cassandra是用Java编写的。
它支持Apache Hadoop的 MapReduce 。Cassandra查询语言(CQL)是一种用于查询Cassandra数据库的类似于SQL的语言。
因此,我认为Cassandra排名第二。
第三名:Redis
Redis是最著名的键值存储系统之一,使用C语言编写,遵循BSD协议。
支持多种语言,比如C ++,PHP,Ruby,Python,Perl,Scala等等。
第四名:HBase
HBase是基于Google为BigTable设计开发的一款分布式非关系型数据库。
HBase的主要目标之一是承受数十亿行X数百列的数据。
可以随时添加服务器为HBase增加容量。多个主节点来确保数据的高可用性。
HBase由Java开发,可以简单地利用Java API进行客户访问。目前已经是Apache基金会的顶级项目。