自学内容网 自学内容网

缓存击穿、缓存穿透、缓存雪崩以及应对措施

1.缓存击穿

1.1概念

是指当某一key的缓存时间过期时大量并发量的请求同时访问此key,瞬间击穿服务器的直接访问数据库,让数据库处于负载的情况。

1.2解决措施

1.2.1异步定时更新

在缓存处理上,某一个热点数据的过期时间为一小时,那就每59分钟,通过定时任务去更新这个人点key,并重新设置其过期时间

1.2.2互斥锁

当redis中根据key获取value值为空时,先锁上,然后从数据库中加载完毕,释放锁。若其他线程也在请求key时,发现获取锁失败,先阻塞。

2.缓存雪崩

2.1概念

是指大量缓存同时过期或缓存服务器宕机,所有的请求的都直接访问数据库,造成数据库高负载,影响性能,甚至数据库宕机。

2.2解决措施

2.2.1 不同的过期时间

为了避免大量的同一时间过期,可以设置不同的过期使劲按,并且通过定期刷新的方式更新过期时间。

3.缓存穿透

3.1 概念

在缓存服务器上没有缓存数据,数据库上也没有符合条件的数据,当时业务系统每次都会绕过缓存服务器查询下游的数据库,缓存服务器完全失去了他的作用

3.2 解决方法

3.2.1设置空白值

可以对这些key对应的设为null,放入缓存,这样再出现这个key的请求的时候,直接返回null即可。

3.2.1 布隆过滤器

布隆过滤器是一个概率性的数据结构,它可以判断这个数据存不存在,一定不存在的直接返回,避免了数据库的压力。


原文地址:https://blog.csdn.net/weixin_69039908/article/details/140331868

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!