微前端架构如何改变企业的开发模式与效率提升
1041
2022-10-01
缓存 雪崩 穿透 击穿
缓存雪崩
原因:缓存雪崩是并发量过大带来的一系列的雪崩效应。大量的请求涌入缓存导致缓存无法处理挂掉,接着大量的请求会涌入数据库导致数据库挂掉。
分析:处理此问题的关键就是避免并发量大的时候缓存不要挂掉,或者说即使挂掉一个缓存还会有备用的缓存顶上。解决:Redis缓存模式
缓存穿透
原因:缓存穿透 是客户端发起一个缓存中不存在的请求需要进入数据库,这样数据量庞大的时候会导致数据库压力过大挂掉,如数据库中的某个ID不存在所以不会同步到缓存中,而请求不停的请求这个ID导致请求全部穿透缓存进入数据库查找,此时的缓存已经是摆设了。
分析 :
缓存穿透的几种情况:
查询非常规范围的ID 如: -1.-2,99999999等查询某ID的数据已经被删除,该ID随属于正常ID范围但数据不存在查询非热点数据,该数据不进入缓存
解决 解决方案就是针对特定的穿透方案进行解决
对于非常规ID进行范围限定,非正常范围内的ID直接返回以删除数据的ID可以同步到缓存设置一个空值非热点数据大量访问可能是攻击者,限制其访问
缓存击穿
原因:通常缓存会有过期时间,缓存过期后请求会进入数据库进行查询。并发量大的情况下,缓存过期的瞬间会造成大量请求涌入数据库导致数据库挂掉。
解决:缓存击穿的问题在于数据过期的瞬间如何处理
设置热点数据永不过期加锁,当数据过期的瞬间,数据库内容到缓存时进行加锁。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~