- 2
- 0
- 约3.73千字
- 约 6页
- 2026-07-29 发布于北京
- 举报
四Java面试突击专题
缓存篇
===图灵:楼兰===
一、为什么使用缓存?
1、高性能
2、高可用
二、什么是缓存?缓存击穿?缓存雪崩?
怎么解决?
1、缓存:缓存中查不到,数据库中也查不到。
解决方案:1》对参数进行校验。2》将数据库中没有查到结果的数据也写入
到缓存。这时要注意为了防止Redis被无用的Key占满,这一类缓存的有效期要设置
得短一点。
3》引入布隆过滤器,在Redis之前判断数据是否存在。要注意布隆过滤器存在
一定的误判率,并且,布隆过滤器只能加数据不能减数据。
2、缓存击穿:缓存中没有,数据库中有。一般是出现在存数数据初始化以及key过
期了的情况。他的问题在于,重新写入缓存需要一定的时间,如果是在高并发场景
下,过多的请求就会瞬间写到DB上,给DB造成很大的。
解决方案:1》设置这个热点缓存永不过期。这时要注意在value当中包含一个逻辑
上的过期时间,然后另起一个线程,定期重建这些缓存。
2》加载DB的时候,要防止并发。
3、缓存雪崩:缓存大面积过期,导致请求
原创力文档

文档评论(0)