缓存穿透、缓存击穿、缓存雪崩分别是什么

缓存中存放的大多数热点数据,目的是防问请求可以直接从缓存中获取数据,从而不用访问Mysql数据库。
1.缓存雪崩:如果缓存中某一时刻大批热点数据同时过期,那么就可能导致大量请求直接访问MySql,解决办法是在过期时间上增加一点随机值。搭建一个高可用的Redis集群也是防止缓存雪崩的有效手段
2.缓存击穿:和缓存雪崩类似,缓存雪崩是大批热点数据失效,而缓存击穿是指某一个热点key突然失效,也导致大量请求直接访问MySql数据库,这就是缓存击穿,解决方案是考虑这个热点key不设置过期时间
3.缓存穿透:假如某一时刻访问redis的大量key都在redis中不存在,也会给数据造成压力,这就是缓存穿透,解决方案是使用布隆过滤器,它的作用是如果它认为某个key不存在,则这个key就肯定不存在,所以可以在缓存前加一层布隆过滤器拦截不存在的key

你可能感兴趣的:(java,缓存,数据库,redis)