Java面试题 P16:Redis篇:Redis使用场景-缓存-缓存穿透

缓存涉及问题:

1、缓存三兄弟:穿透 击穿 雪崩

2、双写一致

3、持久化

4、数据过期策略

5、数据淘汰策略

如果发生了缓存穿透,击穿,雪崩,该如何解决?

1、缓存穿透

什么是缓存穿透,当查询一个不存在的数据,查redis中没有,mysql查询也没有,数据也不会直接写入到redis,就导致每次都要请求数据库,遇到被恶意攻击时访问量增大,会有大量这样不存在的请求访问数据库导致数据库宕机。

(1)方案一:缓存空数据,查询返回的数据为空时,仍把这个空结果进行缓存,例如key:1,value:null

(2)方案二:布隆过滤器,请求redis前增加布隆过滤器

 

posted on 2023-07-29 22:35  wuzx-blog  阅读(48)  评论(0编辑  收藏  举报