开发者社区 问答 正文

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

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

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

    2024-05-17 10:23:49 举报
    赞同 1 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址: