NoSQL,泛指非关系型的数据库,随着互联网的发展传统的关系型数据库面对持续增长的数据处理起来显得越来越力不从心,此时非关系型数据库应运而生。
目前大家基本认同将NoSQL数据库分为四大类:键值存储数据库,文档型数据库,列存储数据库和图形数据库,其中每一种类型的数据库都能够解决关系型数据不能解决的问题。在实际应用中,NoSQL数据库的分类界限其实没有那么明显,往往会是多种类型的组合体。
数据库类型 | 说明 | 代表 |
---|---|---|
键值存储数据 | 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据 | redis |
文档型数据库 | 文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高 | MongoDb |
列存储数据库 | 用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列 | HBase |
图形数据库 | 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上 | Neo4J, InfoGrid, Infinite Graph. |
MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代统的关系型数据库或键/值存储方式.
HBase 是 Apache Hadoop 中的一个子项目,属于 bigtable 的开源版本,所实现的语言为Java(故依赖 Java SDK)。HBase 依托于 Hadoop 的 HDFS(分布式文件系统)作为最基本存储基础单元。
Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。
最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。 例如:微博、数据分析、实时数据搜集、实时通讯等。