NoSql
泛指非关系型数据库,不保证数据的ACID特性
相较于关系型数据库NoSql的优点在于:
1.易扩展
由于数据之间没有关系,极其容易扩展,同时也提高了架构的可扩展性。
2.大数据量,高性能
具有很强的读写能力,尤其实在大数据量下,由于它的无关性,数据结构简单,它的cache是记录级的,cache粒度细,性能高。
3.数据模型灵活
无需为需要存储的数据事先建立字段,随时可以存储任意类型的数据。
4.高可用
在不是很影响性能的情况下,就可以实现高可用的架构。比如Cassandra,HBase模型,通过 复制 模型也能实现高可用。
常用NoSql分类
分类 | 相关产品 | 应用场景 | 数据模型 | 优点 | 缺点 |
---|---|---|---|---|---|
键值对数据库 | Redis Memcached Riak | 内容缓存,频繁读写,数据模型简单的应用 | <key,value>键值对,通过散列表实现 | 易扩展,灵活,大量操作时性能高 | 数据无结构化,通常只被当作字符串或二进制数据,只能通过键查询值 |
列族数据库 | HBase Bigtable Cassandra | 分布式数据存储管理 | 以列族式存储,将同一列的数据存储在一起 | 扩展性强,查找速度快,简单 | 功能较为局限,不支持事务的强一致性 |
文档数据库 | MangoDB CouchDB | Web应用,储存面向文档或类似半结构化的数据 | <key,value>键值对,值是JSON结构的文档 | 数据灵活,可根据value构建索引 | 缺乏统一的查询语法 |
图形数据库 | Neo4j InfoGrid | 社交网络,推荐系统,专注构建关系图谱 | 图结构 | 支持复杂的图形算法 | 复杂,只能支持一定的数据规模 |