1. 缓存雪崩是指在某个时间点,⼤量缓存同时失效,导致请求直接访问数据库或其他后端系统,增加了系统负载。
对于缓存雪崩,可以通过合理设置缓存的过期时间,分散缓存失效时间点,或者采⽤永不过期的策略,再结合定期更新缓存。
2. 缓存击穿是指⼀个缓存中不存在但是数据库中存在的数据,当有⼤量并发请求查询这个缓存不存在的数据时,导致请求直接访问数据库,增加数据库的负载。典型的场景是当⼀个缓存中的数据过期或被清理,⽽此时有⼤量请求访问这个缓存中不存在的数据,导致⼤量请求直接访问底层存储系统。
对于缓存击穿,可以采⽤互斥锁(例如分布式锁)或者在查询数据库前先检查缓存是否存在,如果不存在再允许查询数据库,并将查询结果写⼊缓存。
3. 缓存穿透是指查询⼀个在缓存和数据库都不存在的数据,这个数据始终⽆法被缓存,导致每次请求都直接访问数据库,增加数据库的负载。典型的情况是攻击者可能通过构造不存在的 key ⼤量访问缓存,导致对数据库的频繁查询。
对于缓存穿透,可以采⽤布隆过滤器等⼿段来过滤掉恶意请求,或者在查询数据库前先进⾏参数的合法性校验

被折叠的 条评论
为什么被折叠?



