高并发下如何保证缓存和数据库的数据一致性?( 二 )
本文插图
应用场景
Read Through/Write Through适用于写入之后经常被读取的应用 。
优点
- 缓存不存在脏数据
- 相比较Cache-Aside懒加载模式 , 读取速度更高 , 因为较少因为缓存未命中而从数据库中查找
- 应用程序的逻辑相对简单
- 对于总是写入却很少被读取的应用 , 那么Write-Through会非常浪费性能 , 因为数据可能更改了很多次 , 却没有被读取 , 白白的每次都写入缓存造成写入延迟 。
Write-Back
又叫做Write-Behind 。 和Write-Through写入的时机不同 , Write-Back将缓存作为可靠的数据源 , 每次都只写入缓存 , 而写入数据库则采用异步的方式 , 比如当数据要被移除出缓存的时候再存储到数据库或者一段时间之后批量更新数据库 。
本文插图
应用场景
读写效率都非常好 , 写的时候因为异步存储到数据库 , 提升了写的效率 , 适用于读写密集的应用 。
优点
- 写入和读取数据都非常的快 , 因为都是从缓存中直接读取和写入 。
- 对于数据库不可用的情况有一定的容忍度 , 即使数据库暂时不可用 , 系统也整体可用 , 当数据库之后恢复的时候 , 再将数据写入数据库 。
- 有数据丢失的风险 , 如果缓存挂掉而数据没有及时写到数据库中 , 那么缓存中的有些数据将永久的丢失了
和Write-Through不同 , 更新的时候只写入数据库 , 不写入缓存 , 结合Read-Through或者Cache-Aside使用 , 只在缓存未命中的情况下写缓存 。
本文插图
应用场景
适合于只写入一次而很少被读取的应用 。
优点
- 相比较Write-Through写入的时候的效率较高 , 如果数据写入后很少被读取 , 缓存也不会被没用到的数据占满 。
- 如果数据会写入多次 , 那么可能存在缓存和数据库不一致
stephanietang.github.io/2020/04/13/cache-pattern/
推荐阅读
- 电脑数码精通|夏季如何让电脑的故障率降到最低?早知道早做准备吧
- |支付宝面试题:如果你是支付宝的产品经理,如何让更多人用支付宝点外卖?
- |传统互联网产品经理正在消失,如何自救?
- 华南科技第一线|京东618,大学生换5G新机如何选?
- 毒草科技|如何挑选入门级智能录音笔?搜狗C1对比讯飞A1,谁更值得买?
- cnBetaTB|看机器人如何制作出既有颜值又美味的蛋饼
- 京东京东沃尔玛再加持,达达募资3亿美元如何应战即时配送?
- 电视提前锁定618电视圈“爆款”海信激光电视是如何做到的?
- 淘宝|如何在淘宝网上开网店?在淘宝网上开店有什么要求?
- 摩盒网|电商平台的网页如何更佳吸引人