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

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

作者: 右耳菌 | 来源:发表于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