• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wmw1212

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

使用redis 缓存问题

1、穿透

概念:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库

解决:

1.设置空值缓存:对于那些后端不存在的数据,在Redis中设置一个空值(null或空对象)缓存,以避免重复的后端访问。

2.、布隆过滤器:布隆过滤器是一种数据结构,用于快速判断一个元素是否存在于集合中 

        一定不存在  直接返回

       有可能存在  再查询缓存,没有,再查询数据库

Redisson直接有实现方案

异步加载数据:在缓存未命中时,可以使用异步加载数据的方式,先从后端获取数据并更新缓存,然后再返回结果给请求方,以避免阻塞。

2、击穿

概念:某一个热点数据的key突然过期,造成大量请求直达数据库,数据库宕机

解决 : 1、分布式锁

    2、热点数据永不过期

3、接口限流

3、雪崩

概念:在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力

解决方案:1、随机过期时间

2、热点数据永不过期

3、给缓存业务添加降级限流策略

posted on 2023-09-22 00:09  wmw1213  阅读(15)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3