请详细解释一下布隆过滤器是如何工作的,为什么能有效防止缓存穿透?

news/2025/4/2 6:20:20/文章来源:https://www.cnblogs.com/cabbagehp/p/18801980

缓存雪崩概述
缓存雪崩是指在同一时刻大量缓存数据同时失效,导致大量请求直接穿透缓存访问数据库,使得数据库瞬间承受巨大压力,甚至可能导致数据库崩溃,进而引发整个系统的故障。随机 TTL 和分级缓存是两种常用的防止缓存雪崩的策略,下面分别介绍它们的作用和工作原理。

随机 TTL 防止缓存雪崩的原理及作用

原理
随机 TTL(Time-To-Live,即缓存的过期时间)是指在设置缓存时,为每个缓存项的过期时间添加一个随机的偏移量,而不是让所有缓存项都使用相同的过期时间。
假设原本有一批缓存项的过期时间都设置为 1 小时后,在 1 小时这个时间点,这些缓存项会同时失效,从而引发缓存雪崩。而采用随机 TTL 策略后,每个缓存项的过期时间会在一个范围内随机分布,例如原本设置为 1 小时过期的缓存项,其实际过期时间可能在 55 分钟到 65 分钟之间随机确定。
作用
分散缓存失效时间:通过随机化过期时间,避免了大量缓存项在同一时刻集中失效。这样一来,缓存失效的时间点会被分散到不同的时间段,使得请求不会在同一时刻全部涌向数据库,从而减轻了数据库的压力。
平滑系统负载:由于缓存失效时间分散,系统的负载也会更加平滑。即使有部分缓存失效,也不会对系统造成过大的冲击,保证了系统的稳定性。

分级缓存防止缓存雪崩的原理及作用

原理
分级缓存是指使用多级缓存架构,常见的是两级缓存,例如本地缓存(如 Guava Cache)和分布式缓存(如 Redis)。当有请求到来时,首先从本地缓存中查找数据,如果本地缓存中没有,则再从分布式缓存中查找。如果分布式缓存中也没有,才去数据库中查询,并将查询结果依次更新到分布式缓存和本地缓存中。
作用
减少对分布式缓存的依赖:本地缓存可以在一定程度上拦截部分请求,减少对分布式缓存的访问。当分布式缓存出现故障或大量缓存失效时,本地缓存仍然可以提供部分数据,避免所有请求都直接访问数据库。
提高系统的可用性和性能:由于本地缓存的访问速度通常比分布式缓存更快,使用分级缓存可以提高系统的响应速度。同时,即使分布式缓存出现问题,本地缓存仍然可以为系统提供一定的支持,提高了系统的可用性。
缓解数据库压力:通过分级缓存的层层过滤,只有在本地缓存和分布式缓存都没有命中的情况下,请求才会到达数据库。这样可以大大减少数据库的访问压力,降低缓存雪崩对数据库的影响。
结合使用效果
随机 TTL 和分级缓存可以结合使用,进一步增强防止缓存雪崩的效果。随机 TTL 可以确保分布式缓存中的数据不会同时失效,而分级缓存可以在分布式缓存出现问题时提供额外的保护,两者相辅相成,共同保障系统的稳定性和性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908599.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过PLM项目管理软件提升产品开发效率的7个关键步骤

产品开发效率对于企业的竞争力至关重要。在当今复杂多变的商业环境中,如何有效提升产品开发效率成为众多企业关注的焦点。产品生命周期管理(PLM)作为一种整合产品全生命周期信息的管理理念和技术,为提升产品开发效率提供了有力的支持。通过合理运用PLM,企业能够优化流程、…

BUG记录--Mybatis-Plus注解中动态sql的注意事项

问题点,报错 原因,如果配置了动态sql -- 使用了 <foreach></foreach> 标签前,一定要用 <script></script> 整体包起来,不然动态sql不起作用所以,在 @Select 等注解中使用动态 SQL 时,必须用 <script> 标签包裹。 正确的sql

web164笔记(图片二次渲染绕过)

先右键查看源码,发现有个download.php?image= 猜测有可能是上传图片马,然后文件包含执行命令,我们先上传一个图片马 点击查看图片,跳转到图片页面,但发现执行不了,crtl+s把图片下载下来后,对比之前的图片发现马被弄没了 应该是经过了二次刷新,这里用之前收集的外国师…

US108S-ASEMI功率电机控制电路专用US108S

US108S-ASEMI功率电机控制电路专用US108S编辑:LL US108S-ASEMI功率电机控制电路专用US108S 型号:US108S 品牌:ASEMI 封装:TO-220F US108S核心优势:高耐压、大电流、超强抗干扰‌作为一款高性能双向可控硅,US108S专为交流电调控设计,其核心参数包括: ‌800V断态重复峰值…

关于STM32H7使用SPI6+BDMA传输数据失败

原因由图可知BDMA只能访问SRAM4里的数据,但是我当时是把数据存到了外置的SDRAM中用FMC访问所以导致在使用HAL_SPI_Transmit_DMA(&hspi6, (uint8_t*)LCD_BUF_1, 3200)无法传输数据。 解决方法修改链接文件STM32H743IITX_FLASH.ld:在SECTIONS { }中添加.sram4 (NOLOAD) : …

从零开始学习OpenCL

前言之前在读《Fundamentals Of Computer Graphics》的时候,书中稍微提了一嘴GPGPU的概念,GPGPU即使用图形处理单元的一般用途计算(General Purpose Computation Using Graphics Processor)。之前对这个挺感兴趣的,于是想学一点关于这个的内容。能利用设备进行大规模并行运…

数智技术在城市生命线安全管理中的应用与进展

随着城市化进程的加速,城市生命线工程的安全治理变得尤为重要。城市生命线工程,包括燃气、供水、排水、桥梁、道路等关键基础设施,是城市运行的“血脉”和“神经”,其安全性直接关系到城市居民的生活安全和城市的稳定发展。在数字化转型的大背景下,如何利用数智化技术提升…