·Key-Value模型是最简单,也是最方便使用的数据模型,它支持简单的key对value的键值存储和提取
·Key-Value模型的一个大问题是它通常是由HashTable实现的,所以无法进行范围查询,所以有序Key-Value模型就出现了,有序Key-Value可以支持范围查询
·虽然有序Key-Value模型能够解决范围查询和问题,但是其Value值依然是无结构的二进制码或纯字符串,通常我们只能在应用层去解析相应的结构。而类BigTable的数据模型,能够支持结构化的数据,包括列,列簇,时间戳以及版本控制等元数据的存储。
·而文档型存储相对到类BigTable存储又有两个大的提升。一是其Value值支持复杂的结构定义,二是支持数据库索引的定义。
·全文索引模型与文档型存储的主要区别在于文档型存储的索引主要是按照字段名来组织的,而全文索引模型是按字段的具体值来组织的。
·图数据库模型也可以看作是从Key-Value模型发展出来的一个分支,不同的是它的数据之间有着广泛的关联,并且这种模型支持一些图结构的算法。
目前简单将NoSQL几个分类的代表产品列举如下:
·Key-Value 存储: Oracle Coherence, Redis, Kyoto Cabinet
·类BigTable存储: Apache HBase, Apache Cassandra
·文档数据库: MongoDB, CouchDB
·全文索引: Apache Lucene, Apache Solr
·图数据库: neo4j, FlockDB