一、概述

NoSql是什么

  • SQL (Structured Query Language) 结构化的查询语言语言
    关系型数据库(采用SQL语言查询):表格、行、列
  • Not Only Sql 不仅仅是关系型数据库。泛指非关系型的数据库。

为什么需要NoSql

随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,NoSql由于其本身的特点得到了非常迅速的发展。Redis是发展最快的,必须掌握的一个技术

很多数据类型如用户个人信息、地理位置、社交,没有固定的格式


二、优势

  • 解耦
  • 高可扩展(数据之间没有关系,好扩展)
  • 高性能(Redis一秒写8万次,读取11万次)
  • NoSql的缓存是一种细粒度的缓存,性能高
  • 数据类型多样(不需要事先设计数据库,随取随用)
  • 传统RDS(关系型数据库服务)和NoSql
传统RDS
- 结构化组织
- 结构化查询语言(SQL)
- 一种存储形式:数据和关系都存在单独的表中
- 数据操作(CRUD),数据定义语言
- 严格的一致性
- 基础的事务
...
NoSql
- 不仅仅是数据,结构不固定
- 没有固定查询语言
- 四种存储
	键值对存储、
	列存储、
	文档存储、
	图形数据库(社交关系)
- 最终一致性(最终结果一样即可,中间允许误差)
- CAP定理和BASE理论(异地多活)
- 高性能、高可用、高可扩展

三、NoSql四大分类(四大数据存储结构)

KV键值对

  • 新浪:Redis
  • 美团:Redis + Tair
  • 阿里,百度:Redis + memecache

文档型数据库(bson格式和json一样)

  • MongoDB(一般必须掌握)
  • 是基于分布式文件存储的数据库,c++编写,主要用于处理大量文档
  • 是非关系型数据库中最像关系型数据库的

列存储数据库

  • HBase
  • 分布式文件系统

图形数据库

  • 存的不是图,而是关系。如朋友圈社交网络、广告推荐
  • Neo4j、InfoGrid

NOsql知识点 nosql都有什么_关系型数据库