跳转到主要内容

标签: 高并发

  • 缓存设计的那些坑

    发布于 博客 132 字 1 分钟

    Redis缓存高并发架构

    缓存是最容易加的优化,也是最容易埋雷的优化。加的时候只要几行代码,出问题时往往是深夜的数据不一致或者数据库被打穿。 一致性:先更库还是先删缓存 这个问题的正确答案是先更新数据库,再删除缓存(Cache Aside)。但要理解它为什么仍然不完美。 先删缓存再更库的问题很直接:删完缓存到更库完成之间,另一个请求读到旧数据并把它写回缓存,之后缓存里就一直是脏数据。 先更库再删缓存也有极小概率出问题:读请求恰好在缓存失效后读到旧库值,且回写发生在删除动作之后。概率很低,但在高并发下不等于零。 …

    缓存是最容易加的优化,也是最容易埋雷的优化。加的时候只要几行代码,出问题时往往是深夜的数据不一致或者数据库被打穿。 一致性:先更库还是先删缓存 这个问题的正确答案是先更新数据库,再删除缓存(Cache Aside)。但要理解它为什么仍然不完美。 先删缓存再更库的问题很直接:删完缓存到更库完成之间,另一个请求读到旧数据并把它写回缓存,之后缓存里就一直是脏数据。 先更库再删缓存也有极小概率出问题:读请求恰好在缓存失效后读到旧库值,且回写发生在删除动作之后。概率很低,但在高并发下不等于零。 …