Redis雪崩
说明
处理策略
- 给key的失效时间都加一个随机值,这样可以保证数据不会在同一时间大面积失效。
-
缓存穿透
说明
指缓存和数据库都没有的数据,而用户不断发起请求,导致数据库压力过大。
处理策略
接口层增加校验
- 从缓存取不到的数据,在数据库中也没有查到,这时可以将对应的key的value写为“null, 位置错误,稍后重试”这样的值,具体取啥可以问产品,缓存有效时间可以设置短点,如30秒
- 要知道如果正常用户单秒不会发起这么多次请求的,网关层Nginx针对单个ip每秒访问次数超出阈值的IP直接拉黑
- 高级用法:布隆过滤器。利用高效的数据结构和算法快速判断出key是否在数据库存在,不存在直接return就好了,存在就再查询DB刷新key再return
缓存击穿
说明
指一个key非常热点,在不停的抗着大并发,key失效的瞬间,穿破缓存,直接请求数据库。处理策略
设置永久key