美文网首页
缓存中间件实践 - 缓存和数据库一致性更新原则

缓存中间件实践 - 缓存和数据库一致性更新原则

作者: 右耳菌 | 来源:发表于2022-09-21 10:39 被阅读0次

    1. 缓存和数据库一致性更新是什么?

    1.1 缓存和数据库的关系

    介绍

    • 缓存:高性能产品
    • 数据库:性能低产品
    • 缓存+数据库 = 高效的数据存储产品组合

    • 缓存+数据库业务提供了什么?
      1.提供了性能的提升((更好的存储介质,更贴近请求的存储距离
      2.提供了简便的数据抽象
    1.2 缓存和数据库一致性更新本质是什么?

    保证用户访问缓存和数据库中的数据是一样的!


    2. 为什么需要一致性更新?

    2.1 库存系统一致性 - 例子1

    3. 缓存和数据库一致性更新原则

    3.1 常见的缓存访问模式
    • Cache-Aside (本地缓存)

    当客户端有很多的时候,该模式效率会很低。

    • Cache-Aside(缓存中间件 - 第一种)
    • Cache-Aside(缓存中间件 - 第二种)
    3.2 常见的缓存访问模式(读取)
    • Cache-Aside (缓存读取)
    3.3 常见的缓存访问模式(更新模式)
    • 先更新缓存,再更新数据库

    但是可能存在更新数据库失败的问题

    或下面的情况

    • 先更新数据库,再更新缓存

    但是也可能发生缓存更新失败的问题

    或下面的情况

    • 先删除缓存,再更新数据库

    但是也会有下面的情况出现

    • 先更新数据库,再删除缓存

    但是无法立即将新数据返回给其他的访问请求,或者说后续缓存删除失败等等

    或下面的情况

    总结

    1. 更新,不删除
      a.先更新缓存,在更新数据库
      b.先更新数据库,在更新缓存
    2. 需要删除
      a.先删除缓存,在更新数据库
      b.先更新数据库,在删除缓存
    3.4 常见缓存访问模式(Through)
    • 缓存和数据库库交互 - Read Through
    • 缓存和数据库库交互 - Write Through
    • 缓存和数据库库交互 - Write Behind

    3.5 一致性更新目标
    • 最终一致性 - 过期时间(TTL)
      1.最终一致性:过期了会取数据库最新值
      2.剔除冷的缓存,节省缓存空间,提升效率

    • 最终一致性 - 异步更新

    • 最终一致性 - 重试机制
    • 强一致性

    如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

    相关文章

      网友评论

          本文标题:缓存中间件实践 - 缓存和数据库一致性更新原则

          本文链接:https://www.haomeiwen.com/subject/snwvortx.html