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

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

1.1.缓存穿透解决方法:

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

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

2.1 缓存雪崩解决方法:

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

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

3.1 缓存击穿的解决方法

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

相关推荐
无理 Java16 分钟前
【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)
java·分布式·后端·rabbitmq·多线程·mq·消息中间件
Xiao Tong3332 小时前
linux第三课(linux中安装nginx与redis及SpringBoot集成redis)
linux·运维·redis·nginx
NiNg_1_2342 小时前
[Redis面试高频] - zset的底层数据结构
数据结构·redis·面试
Amagi.3 小时前
Redis持久化机制
数据库·redis·缓存
鱼跃鹰飞5 小时前
大厂面试真题-Kafka如何保证消息不丢失
分布式·算法·面试·职场和发展·kafka
iQM755 小时前
分布式秒杀实战之订单数据分表
java·spring boot·分布式·后端
德迅--文琪5 小时前
分布式网络存储技术是什么?分布式存储技术有哪些
分布式
无休居士5 小时前
分布式环境中解决主从延时的一些思路
分布式·mysql·主从延迟·解决主从延迟思路·mysql主从延迟
caperxi5 小时前
当 PC 端和移动端共用一个域名时,避免 CDN 缓存页面混乱(nginx)
前端·nginx·缓存
iVictor6 小时前
Redis 内存突增时,如何定量分析其内存使用情况
redis