Redis入门
1、NoSQL概述
1.1 为什么要用NoSQL
大数据时代,分布式集群,单机—>分布式
单机MySQL的时代
应用不是直接访问MySQL,会通过一些方法,DAL(数据访问层,Data Access Layer)去访问MySQL实例。以前不同SQL对应不同语法,麻烦,出现了框架Hibernate和MyBatis等框架,开发变得简单,框架底层值得学习。
90年代,一个基本的的网站访问量不会太大,单个数据库完全足够!
那个时候更多的去使用静态网页Html,服务器根本没有太大压力!
思考一下,这种情况下:整个网站的瓶颈是什么?
- 数据量太大,一个机器放不下!
- 数据的索引,比如如果MySQL的数据超300万,不建立索引太慢!MySQL使用B+Tree,索引机器也放不下!
- 访问量(读写混合),一个服务器承受不来!
只要出现以上3种情况之一,就要晋级!
Memcached(缓存)+MySQL+垂直拆分(读写分离)
网站80%的情况都在读,每次都要去查询数据库的话时分麻烦(比如两个人查询语句相同,无需再次查询服务器),所以说我们希望减轻服务器压力,可以使用缓存来保持效率!
发展过程:优化数据结构和索引->文件索引(IO)->Memcached(当时最热门的技术)
分库分表+水平拆分+MySQL集群
技术和业务在发展的同时,对人的要求也越来越高了!
数据库本质:读写
早些年MyISAM(默认存储引擎):表锁,十分影响效率!高并发下就会出现严重的锁问题;
转战Innodb:行锁
慢慢的开始使用分库分表来解决写的压力!多服务多表MySQL在那个年代推出了表分区!但并没有多少公司使用。MySQL的集群,很好满足那个年代需求。