缓存穿透、缓存雪蹦、缓存击穿记录

  1. 缓存穿透:
    多个恶意并发请求不存在的数据,缓存中没有,导致多个请求进入到数据库,数据库中查询null,没有返回数据到缓存中,导致一直有大量请求到数据库中。数据库压力过大,这种情况叫做缓存击穿。

1.1.缓存穿透解决方法:

数据库中不存在的数据,也给缓存中保存一个标识数据库,避免重复访问数据库压力过大,切记要给缓存的标志位加上过期时间。避免出现数据库与缓存数据不一致。

  1. 缓存雪崩
    缓存中存储的不同类型的大量数据同时过期,导致大量请求到缓存中没有查询到数据,继续到数据库中查询,数据库压力过大。这种情况叫做缓存雪崩

2.1 缓存雪崩解决方法:

缓存中不同类型的数据存储设置不同的过期时间,避免大量同时过期

  1. 缓存击穿
    大量的请求到一个缓存的热点数据,热点数据刚好过期了。查询不到数据,导致进一步到数据库,db的压力过大。'

3.1 缓存击穿的解决方法

查询数据库之前加锁,只允许一个请求到数据库查询,随后把返回数据保存到缓存中,剩下的请求再直接访问缓存,减少数据库压力,并提高响应速度。

相关推荐
张小瑜16 分钟前
Vue3 + Vite 项目部署后浏览器缓存导致标题错误
缓存
明达智控技术20 分钟前
MR30分布式I/O模块服务换热站项目,守护万家温暖
分布式·物联网·自动化
stevenzqzq21 分钟前
android recyclerview缓存_缓存问题解决办法
android·java·缓存
武子康21 分钟前
Java-174 FastFDS 从单机到分布式文件存储:实战与架构取舍
java·大数据·分布式·性能优化·系统架构·dfs·fastdfs
失散1323 分钟前
分布式专题——56 微服务日志采集与分析系统实战
java·分布式·微服务·架构
失散1326 分钟前
分布式专题——57 如何保证MySQL数据库到ES的数据一致性
java·数据库·分布式·mysql·elasticsearch·架构
hoiii1872 小时前
设置Redis在CentOS7上的自启动配置
数据库·redis·缓存
爬山算法2 小时前
Redis(122)Redis的版本更新如何进行?
数据库·redis·bootstrap
t***D2642 小时前
前端构建工具缓存策略,contenthash与chunkhash
前端·缓存
方圆想当图灵2 小时前
Nacos 源码深度畅游:注册中心核心流程详解
分布式·后端·github