Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

缓存要考虑的问题

  • 数据不一致

    • 要求时效性高的数据,需要保证与数据库中的一致,也要保证与副本中的数据一致
    • 避免方式
      • 设置合理的过期和更新策略
  • 缓存雪崩

    • 大量key缓存在同一时间过期
    • 避免方式
      • 不给热点key设置过期时间
      • 或者原失效时间上加上一个随机值
  • 缓存击穿

    • 一个热点key缓存突然过期,导致大量并发请求落到数据库上
    • 避免方式
      • 不给热点key设置过期时间
  • 缓存穿透

    • 大量请求在缓存中找不到值,导致大量并发请求落到数据库上
    • 避免方式
      • 给请求做一次拦截校验,去除非法值
      • 使用布隆过滤器,发现不存在的key首先就拒绝
  • 缓存故障

    • 缓存所在的机器发生宕机
    • 避免方式
      • 部署分布式的集群,即使一台机器宕机,也只是丢失部分数据,还能重新加载