高并发下如何保证缓存和数据库的数据一致性?( 二 )
本文插图
应用场景
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/
推荐阅读
- 海峡生活汇印度对中国虎视眈眈,我国将如何迎接挑战,英国仍想着事后清算
- JEECG前端Chrome调试小技巧汇总
- 嘴强玩家马小跳如何才能绝地翻盘?萨满:简单,炉石传说:对手场上7个死亡之翼
- 购房置业▲社保未缴满15年如何补救,这4种方式都可以,劝你不要选第4个
- #青春有你第二季#青你2学员问杨天真“火了如何调整心态”,杨天真怒怼:等你火了再说吧
- 程程搞笑该如何废物利用,网友回答笑了,在家找到过期的洗面奶
- 崔元新不输当前5G新机的4款旧旗舰,你如何选择呢?,新一轮降价潮
- 炒米视角对国家没用”,此人如何评价?,王福重博士谈农民:“一身蛮力
- 讲故事的女人是如何对待她们的?说出来你绝对不敢相信,萨达姆俘虏美国女兵后
- 我家的猫叫皮蛋台积电急了,纯国产芯片来了,华为设计,中芯生产你如何评价?,ASML断供失效