Redis入门

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的集群,很好满足那个年代需求。

评论