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值进行些限制,比如正整数啥的

posted @ 2025-07-02 14:37  日月既往、不复可追。  阅读(8)  评论(0)    收藏  举报
Fork me on GitHub /*音乐*/ 1 2 3
4