Redis笔记01:关于Nosql

关系型(Mysql为例)数据库大致使用历程:

阶段一:单机Mysql

Redis笔记01:关于Nosql

早期网站访问量很小,单个mysql就可以支撑,更多的网站是静态网页(类似hao123.com)
发展之后出现的问题
1.存储的数据量大,一台机器不够
2.数据量大(超过300W条数据)需要索引,索引过多一台机器内存不够
3.早期的访问请求是读写混合,一台服务器承受不住

阶段二:Memcached(缓存)+mysql+垂直拆分/读写分离

(网站80%的访问量都是读,重复直接读取数据库,操作麻烦,数据库增加不必要的压力,可以使用缓存缓解)

Redis笔记01:关于Nosql

阶段三:分库分表+水平拆分+mysql集群

Redis笔记01:关于Nosql

阶段四:大数据

数据量大、变化快,比如较大的文件、博客、图片 ,mysql等关系型数据库不够用而且效率低,需要一种数据库来处理这些数据以降低mysql的压力。Nosql就可以可以处理这些问题。

NoSql = not only sql (不仅仅是sql 泛指非关系型数据库)

Nosql特点:

  1. 方便扩展,数据之间没有关系很好扩展
  2. 大数据量、高性能(redis每秒可写8W次,读11W次) nosql的缓存级,是一种细粒度的缓存,性能高
  3. 数据类型多样型 (武大基本类型,三大特殊数据类型)(不需实现设计数据库,随取随用)

Nosql 的四大分类
1.KV键值对 比如 redis、memcached、tair
2.文档型数据库 比如mongodb 基于分布式文件存储的数据库,主要用来处理大量文档,是一个基于关系型数据库和非关系型数据库之间的产品,功能丰富,是最像关系型数据库的非关系型数据库。
3.列存储数据库 比如HBase /分布式文件系统
4.图关系数据库(存储的是关系)比如 neo4j