一 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度关系查找等 | 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案 |