有个新网站能提供,做任务的阅币漫画网站,友情链接发布,公众号 链接wordpress击穿、穿透、雪崩经常听人说吧#xff1f; 那他到底是啥呢#xff1f;无非就是在有缓存层的情况下#xff0c;对各种绕过缓存层从而直接落到了DB上的情况进行的分类。
概念性的东西大概如下#xff0c;我是记不住#xff0c;后期具体使用与规避这些问题才是大事#xff…击穿、穿透、雪崩经常听人说吧 那他到底是啥呢无非就是在有缓存层的情况下对各种绕过缓存层从而直接落到了DB上的情况进行的分类。
概念性的东西大概如下我是记不住后期具体使用与规避这些问题才是大事后面有机会更新吧。
击穿Cache Penetration 定义 击穿是指请求的数据在缓存中永远找不到导致请求直接落到数据库上。这种情况通常是由于某些恶意请求或者程序错误导致的请求的 key 本身是无效的或者根本不存在。 原因 恶意请求攻击者故意请求不存在的 key。 程序错误代码逻辑错误生成了无效的 key。 解决方案 布隆过滤器使用布隆过滤器预先判断 key 是否存在如果布隆过滤器返回不存在则直接返回空结果不再查询数据库。 缓存空值对于查询不到的数据也缓存一个空值例如 null并设置一个较短的过期时间防止频繁查询数据库。 验证参数在接口层增加校验不合法的参数直接返回。 黑名单设定一个合理的阈值当某个IP的请求次数超过阈值时将其加入黑名单限制其访问频率或直接拒绝其请求。穿透Cache Miss 定义 穿透是指缓存中某个 key 失效或被删除导致请求绕过缓存层直接访问数据库。这种情况通常是正常的缓存过期或缓存被主动删除导致的。 原因 缓存过期缓存中的数据超过了设定的过期时间。 主动删除缓存中的数据被主动删除例如在更新数据库后删除缓存。 解决方案 缓存预热在系统启动时或定期预热缓存提前加载常用数据。 异步加载当缓存未命中时可以异步加载数据并更新缓存避免所有请求同时访问数据库。雪崩Cache Avalanche 定义 雪崩是指大量缓存 key 同时失效导致大量请求同时绕过缓存层直接访问数据库造成数据库压力剧增甚至崩溃。这种情况通常是由于缓存过期时间设置不合理或突发的高并发请求导致的。 原因 缓存过期时间集中多个缓存 key 设置了相同的过期时间导致同时失效。 突发高并发短时间内大量请求同时访问数据库。 解决方案 随机过期时间为缓存 key 设置随机的过期时间避免大量 key 同时失效。 限流降级在高并发情况下使用限流和降级策略限制请求频率保护数据库。 缓存预热在系统启动时或定期预热缓存提前加载常用数据。 多级缓存使用多级缓存策略例如本地缓存 分布式缓存减少对数据库的直接访问。
个人理解 击穿: 请求的数据在缓存里永远找不到请求绕过缓存层 穿透:部分key失效或被删除请求绕过缓存层 雪崩:所有缓存key同时失效所有请求全部绕过缓存层