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

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

1.1.缓存穿透解决方法:

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

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

2.1 缓存雪崩解决方法:

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

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

3.1 缓存击穿的解决方法

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

相关推荐
重学一遍2 小时前
Spring Security + JWT + Redis 的认证授权系统
java·redis·spring
qq_318121592 小时前
互联网大厂Java面试故事:在线教育微服务架构、缓存优化与AI智能教学全流程解析
java·spring boot·redis·微服务·kafka·spring security·在线教育
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-分布式篇-分布式系统基础理论
java·开发语言·分布式
jonyleek3 小时前
告别硬编码:通过逻辑编排引擎的RabbitMQ监听实现灵活自动化
分布式·自动化·rabbitmq·服务编排·逻辑引擎
alonewolf_995 小时前
Redis 7.X 部署指南:单机、主从、哨兵、集群
redis·分布式架构
Tony Bai6 小时前
【分布式系统】05 时间的幻象 —— Lamport 与 Vector Clock 如何重建分布式因果?
分布式
難釋懷7 小时前
Redis 通用命令
数据库·redis·缓存
hanqunfeng7 小时前
(九)Redis 命令及数据类型 -- Set
数据库·redis·bootstrap
编程大师哥8 小时前
如何在C++中使用Redis的事务功能?
开发语言·c++·redis
梁bk8 小时前
[spring cloud] Seata分布式事务管理
分布式·spring·spring cloud