什么是缓存
缓存(cache)在计算机中是一个经典的概念,其核心思路就是把一些常用的数据放到一些访问速度更快地地方,方便我们随时读取
对于计算机硬件来说,往往访问速度越快的设备,成本往往越高,存储空间越小
缓存时很快,但是空间上是不足的,因此大部分情况下,缓存只用来存放一些热点数据(访问次数频繁的数据)
关于“二八定律”
20%的热点数据,能够应对80%的访问场景,因此只需要把这少量的热点数据放入缓存,就可以应对大多数的场景,从而在整体上提升性能
使用Redis作为缓存
通常情况下,我们会使用关系型数据库(如Mysql)来存储服务系统中的数据.
虽然这类数据库功能强大,但是由于其进行一次查询操作消耗的系统资源比较多.
是什么原因造成关系型数据库低性能的?
- 数据库数据存储在硬盘上,硬盘的读写速度是很慢的
- 如果查询时不能命中索引,就会进行表的遍历,会大大增加硬盘读写次数
- 关系型数据库内部会对于sql的执行,进行一系列的解析、校验、优化等工作
- 如果是复杂查询(如联合查询),需要进行笛卡尔积,而这无疑会进一步降低效率
- ...
因此,如果关系型数据库的并发量过高,对数据库的压力可是不小的,很容易使数据库出现宕机情况
而引入缓存,就可以使用其他的方式保存数据库中的热点数据,从而降低直接访问数据库的请求数量,而使用Redis作为缓存就是一个常见的解决方案
Redis 访问速度比MySQL 快很多. 或者说处理同⼀个访问请求, Redis 消耗的系统资源比MySQL 少很多. 因此 Redis 能⽀持的并发量更⼤.
- Redis 数据在内存中, 访问内存比硬盘快很多.
- Redis 只是支持简单的 key-value 存储, 不涉及复杂查询的那么多限制规则
缓存对Mysq