redis的缓存穿透、雪崩、击穿
2020-05-23 16:03:56来源:博客园 阅读 ()
redis的缓存穿透、雪崩、击穿
1、缓存穿透
原因:指定查询一个一定不存在的数据,我们去查询某个商品,但是缓存中没有,那么就是直接查询数据库,高并发下假如同时100万请求同时查询,那么他就会直接穿过缓存去查询数据库,那么它将会导致数据库崩溃无法工作【一直查询一个不存在的结果,导致缓存一直不命中,全部来查询数据库。导致数据库压力过大,没有将null结果写入缓存】
解决:null结果缓存,并加入短暂过期时间,如果不加入过期时间,则后面一直查询的都是空结果
2、缓存雪崩
原因:假如我们给缓存中放了许多数据,但是我们在放数据的时候给每个数据都设置了相同的过期时间,
在某一个时候这些数据同时在缓存中失效,那么这个时候所有请求又将会直接同时去访问数据库,这时就会导致数据库压力过大,无法正常工作【大面积key同时失效】
解决:在存每一个数据的时候,在原有的失效时间上加上一个随机数,避免他们同时失效
3、缓存击穿
原因:我们访问一个热点的key,每天100万查询某款商品,但是在加入缓存的时候,给他设置了过期时间,比如一天,正好到晚上失效了,到了第二天突然高峰期所有请求全部进来,但是此时缓存已经失效了,这时所有请求将直接到数据库,导致数据库压力过大【某一个key失效,它是一个高频热点数据】
解决:加锁,大量并发只让一个人去查,其他人等待,查到以后释放锁,其他人得到锁,先查缓存,就会返回数据,不用去数据库
原文链接:https://www.cnblogs.com/exce-ben/p/12943884.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- redis缓存 2020-06-12
- Spring Boot 2.3.0 新特性Redis 拓扑动态感应 2020-06-11
- 作为一个面试官,我想问问你Redis分布式锁怎么搞? 2020-06-10
- 分布式锁没那么难,手把手教你实现 Redis 分布锁!|保姆级教 2020-06-08
- Redis企业级数据备份与恢复方案 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash