云原生应用架构设计与开发实战-毕竟忠魂吹未散

本文探讨了云原生应用在高并发场景下,缓存与数据库保持数据一致性面临的挑战。分析了包括Cache-Aside Pattern在内的多种策略,如先更新DB再删除缓存、先更新DB再更新缓存、先更新缓存再更新DB、先删除缓存再更新DB以及缓存延时双删和变种双删策略,指出每种策略的优缺点,并强调在实际应用中需要根据业务场景、读写比例和一致性容忍度等因素选择合适的方法。
摘要由CSDN通过智能技术生成

download:云原生应用架构设计与开发实战

缓存与数据库双写分歧性几种战略剖析

一、背景

在高并发场景中,为避免大量恳求直接访问数据库,缓解数据库压力,常用的方式普通会增加缓存层起到缓冲作用,减少数据库压力。引入缓存,就会触及到缓存与数据库中数据如何坚持分歧性问题,本文将对几种缓存与数据库保证数据分歧性的运用方式停止剖析。为保证高并发性能,以下剖析场景不思索执行的原子性及加锁等强分歧性请求的场景,仅追求最终分歧性。

二、读取过程

• 读缓存

• 假如缓存里没有值,那就读取数据库的值

• 同时把这个值写进缓存中

三、更新过程

更新操作有多种战略,各有优劣,主要针对此场景停止剖析

战略1:先更新db,再删除缓存(常用的Cache-Aside Pattern旁路缓存)

问题:

1.假如更新db胜利,删缓存失败,将招致数据不分歧

2.极端场景,恳求A读,B写

1)此时缓存刚好失效 2)A查库得到旧值 3)B更新DB胜利

4)B删除缓存 5)A将查到的旧值更新到缓存中

此场景的发作需求步骤2)查db 一直慢于 3)的更新db,才干招致4)先于5)执行,通常db的查询是要快于写入的,所以此极端场

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值