Redis学习(一)------NoSQL的发展历程

一、单机MySQL的年代

Redis学习(一)------NoSQL的发展历程_第1张图片
90年代一个网站的访问量不会太大,单个数据库完全足够!更多使用静态网页HTML,服务器没有什么压力;
但是会有以下瓶颈:

  1. 数据量不会太大,数据量太大的话一个机器存不下
  2. 数据的索引(B+tree),一个机器内存也放不下
  3. 访问量(读写混合),一个服务器承受不了

二、Memcached(缓存) + MySQL+垂直拆分(读写分离)

后来服务架构变成了读写分离,多个服务器中存放相同的数据,一些用来写一些用来读;
如图所示当有数据写入mysql2中时,mysql1mysql3两台服务器就会同步mysql2中的数据,当用户需要读取数据时,就去mysql1mysql3中读取;
Redis学习(一)------NoSQL的发展历程_第2张图片
经过调查,网站80%的操作都是读操作,为了避免大量重复对于相同数据从数据库中读的操作,引入了缓存层;
Redis学习(一)------NoSQL的发展历程_第3张图片
这样减轻了数据库的压力;

三、分库分表+水平拆分+MySQL集群

Redis学习(一)------NoSQL的发展历程_第4张图片
三个集群构成了整个数据;

四、Nosql

NoSQL = Not Only SQL(泛指非关系型数据库)
很多的数据类型,比如地理位置,个人信息,社交网络,这些数据类型的存储不需要一个固定的格式,不需要多余的操作就可以横向扩展;

NoSQL的特点:

  1. 解耦!方便扩展(数据之间没有关系很好扩展)
  2. 大数据高性能(Redis一秒写8万次, 读12万次)(NoSQL的缓存是记录级的,是一种细粒度的)
  3. 数据类型是多样的(不用事先设计数据库,随取随用)

五、3V和3高

3v:描述问题
海量(volume)
多样(variety)
实时(verlocity)


3高:解决问题
高并发
高可拓
高性能


你可能感兴趣的:(数据库,nosql)