开发者社区> 问答> 正文

缓存穿透的应对策略有哪些?

缓存穿透的应对策略有哪些?

展开
收起
真的很搞笑 2024-05-16 21:57:46 28 0
1 条回答
写回答
取消 提交回答
  • 使用布隆过滤器(Bloom Filter):将所有可能存在的数据哈希到一个足够大的位数组中,先经过布隆过滤器判断是否存在于缓存中,如果不存在,则直接返回,避免对数据库的查询压力。
    空对象缓存:对于确定不存在的数据,在缓存中也存储一个空对象,表示该数据不存在。当请求访问这些不存在的数据时,直接从缓存中返回空对象。
    延迟双判:当查询请求穿透缓存到达数据库层后,先在数据库中进行查询,如果数据库也没有对应的数据,则将这个空结果写入缓存,并设置一个较短的过期时间。
    热点数据预加载:在系统启动时或者在缓存过期前提前异步加载热点数据到缓存中,避免被频繁请求的数据因为缓存过期而导致穿透问题。
    限流策略:针对频繁请求的特定数据,可以设置限流策略,如使用令牌桶算法或漏桶算法,限制对这些数据的请求频率,减轻数据库的压力。

    2024-05-17 10:23:49
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载