一  KV键值:典型介绍



  • 新浪:BerkeleyDB + redis
  • 美团:redis + tair
  • 阿里 百度:memcache + redis



二 文档型数据库(bson格式比较多):典型介绍



  • CouchDB
  • MongoDB

基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。



            MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是一个非关系型数据库当中功能最丰富,最像关系数据库的。



            目前在支付公司用得较多。





三 列存储数据库



  • Cassandra,HBase
  • 分布式文件系统



四 图关系数据库



  • 它不是放图形,放的是关系比如:朋友圈社交网络/广告推荐系统
  • 社交网络,推荐系统等。专注于构建关系图谱
  • Neo4j,InfoGrid



五 四者对比



分类

Examples举例

典型应用场景

数据模型

优点

缺点

键值(key-value)

Tokyo



Cabine/Tyrant



Redis



Voldemort



Oracle BDB

内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等

Key指向Value的键值对,通常用hashtable来实现

查找速度快

数据无结构化,通常只被当作字符串或者二进制数据

列存储数据库

Cassandra



HBase



Riak

分布式的文件系统

以列簇式存储,将同一列数据存在一起

查找速度快,可扩展性强,更容易进行分布式扩展

功能相对局限

文档型数据库

CouchDB



MongoDB

Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)

Key-Value对应的键值对,Value为结构化数据

数据结构要求不严谨,表结构可变,不需要像关系型数据库一样需要预先定义表结构

查询性能不高,而且缺乏统一的查询语法

图形数据库

Neo4J



InfoGrid



Infinite Graph

社交网络,推荐系统等。专注于构建关系图谱

图结构

利用图结构相关算法。比如最短路径寻址,N度关系查找等

很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案