穿透:对于系统A,每次有5000次请求,但是4000次都是黑客的恶意攻击,这些请求在缓存和数据库中都找不到;
解决方案:只要在数据库中找不到,就设置为空;
布隆过滤器(他说元素不存在就一定不存在);
击穿:某个key非常热点,访问很频繁,会出现失效的瞬间,就会击穿缓存,访问数据库。
解决方案:将key设置为永不过期;
设置互斥锁(等待第一个请求构建完缓存之后,才释放锁,其他请求才能通过该key访问数据)
雪崩:缓存大规模失效,大量请求全部落在数据库。
解决方案:换一个更高可用的redis(redis持久化)