美文网首页
缓存穿透、击穿、雪崩

缓存穿透、击穿、雪崩

作者: Hmcf | 来源:发表于2021-08-10 15:57 被阅读0次

redis常见的问题及解决方案:
1、缓存穿透:缓存中查不到数据,数据库中也查不到。
解决方案:

1》对查询条件的参数进行合法性校验
2》将查不到的数据也写到redis中,给一个null值,并设置一个短的过期时间
3》引入布隆过滤器(有一定的误判可能,且布隆过滤器只能加数据不能减数据,避免标志位上的其他数据失效)

2、缓存击穿:缓存中查不到数据,数据库中能查到。
一般出现在数据初始化及key过期的情况下,key过期重新写入需要时间,高并发下就会出现这个问题,请求都打到数据库上了
解决方案:

1》设置热点数据永不过期。(在数据中加一个逻辑过期重加载到时间,另起一个线程定期扫描加载)
2》加载数据的时候避免高并发

3、缓存雪崩:缓存大面积过期,请求都打到数据库上。
解决方案:

1》把缓存的过期时间分散开,比如在统一的过期基础上加一个随机数
2》热点数据永不过期

相关文章

网友评论

      本文标题:缓存穿透、击穿、雪崩

      本文链接:https://www.haomeiwen.com/subject/wfxfbltx.html