请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

缓存的问题

1 缓存雪崩 和缓存击穿 有什么区别?

2 1 缓存空对象,对查询结果为空的情况也进行缓存如果是集合的话缓存一个空的集合,但不是空 是什么urll??
图片描述

正在回答

插入代码

1回答

Jimin 2019-05-12 23:38:04

你好,缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。

缓存击穿是指缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。

这两个都属于缓存查不到时可能带来的影响,但是缓存查不到的原因不同。

你后面那个问题没完全看懂,缓存空的集合也是实际为空的时候,不至于出现某些情况一直为空时需要不断查询db。

0 回复 有任何疑惑可以回复我~
  • 提问者 无道8 #1
    非常感谢老师!“但不是空 是什么urll??”这句是你说的一句话 我没有听清楚 所以问问你
    回复 有任何疑惑可以回复我~ 2019-05-16 22:24:52

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号