缓存概述
缓存,简单来讲就是一个数据,由A容器取出来存放在B容器中,B容器中存放的数据就可以被称为缓存,而缓存一致性就是,B容器中的数据根据A容器中的数据的变换从而进行变化,这个就叫做缓存一致性。
怎么有效保证缓存一致性
保证缓存的一致性方法有很多种,根据不同的应用场景有不同的解决方法,但也大体分为以下几种:
1,对缓存设置有效期,到期重新缓存。
2,数据库方面数据改变时通知reids做删除操作,进而重新对数据进行缓存。
3,使用延时双删对数据的一致性进行保证,简单来讲就是在rdis方面通过删除后延迟0.1
秒再次进行删除保证缓存一致性。
以上1,2方法大部分情况是要进行配合使用,两者都有部分问题
缓存的击穿,穿透,雪崩
1,击穿:
缓存的击穿就是当前redis的缓存热点数据到期,请求访问至数据库方面,由于访问请求
过多,而数据库处理该类请求的速度远不及redis,所以数据库方面的执行压力就会加大,解
决方案就是,使用本地锁或者分布式锁保证数据存在。
2,穿透:
缓存的穿透,简单来讲就是恶意的攻击,该请求访问了数据库中不存在的数据。解决方
案就是,使用布隆过滤器进行过滤。
3,雪崩:
雪崩的情况与击穿略微类似,都是属于数据库方面压力增加,雪崩就是,redis中存放的
多个热点数据同时到期,巨量的访问请求来到数据库这里。这就是缓存的雪崩,而处理雪崩
的方法就是在存储热点数据的同时,给热点数据设置一个随机的有效期即可。