一、缓存穿透的解决方案
为了演示缓存穿透,这里设置的redis是单机单实例。
二、缓存穿透之布隆过滤器
布隆过滤器能够迅速判断一个元素是否存在于集合里。
布隆过滤器缺点:
1.会有1%的误判率,误判概率越低,数组所占用的空间越长。
2.布隆过滤器的数据只能添加,不能移除,主要是由于多个数据可能存在于同一个位置,比如subCat:2、subCat:3。
3.维护起来比较麻烦,代码复杂。
三、缓存雪崩与预防
1.什么是缓存雪崩?
当在同一时刻缓存里有大量的key过期时间结束,此时有大量过期的key请求,这时就会有大量的请求落到数据库,数据库承载不了这么大的数据访问,就会宕机。
2.雪崩预防
对于雪崩来说,我们不可能完全解决,只能对它预防,缓解雪崩的现象
预防方法如下:
(1)永不过期