redis的缓存雪崩,缓存击穿,缓存穿透
缓存雪崩:redis宕机,大量key同时过期。
解决方法:
1、不要设置相同的过期时间,可以加一个偏移量
2、Redis集群
3、服务降级,当流量到达一定的阈值时,就直接返回“系统繁忙”之类的提示
缓存击穿:一个热点的key过期了,导致短时间大量的访问涌向数据库
解决办法:
1、热点key不设置过期时间
2、加锁,如果缓存失效的情况,只有拿到锁才可以查询数据库,降低了在同一时刻打在数据库上的请求,防止数据库宕机,不过这样会导致系统的性能变差。
缓存穿透:
请求没有经过数据库直接到redis上了,比如用户请求的key在Redis中不存在,或者用户恶意伪造大量不存在的key进行请求,都可以绕过缓存,导致数据库压力太大挂掉。
1、value缓存空值,当某个key在redis里面没有,在数据库里面也没有时,可是把key值保存进redis并设置value为空
2、布隆过滤器
3、可以对redis的key值进行些限制,比如正整数啥的

浙公网安备 33010602011771号