3种常用的缓存读写策略

本文介绍了三种常见的缓存读写策略:旁路缓存模式强调先更新DB再删除缓存以避免数据不一致;读写穿透策略在写时先查缓存,若不存在则更新DB,读时先尝试从缓存获取,缓存未命中则从DB加载并回填;异步缓存写入策略通过异步批量更新DB,适用于对数据一致性要求不高的场景,如浏览量统计。
摘要由CSDN通过智能技术生成

一、旁路缓存模式

比较适合读请求比较多的场景

写 :
在这里插入图片描述

  1. 先更新 DB
  2. 然后直接删除 cache 。

读 :
在这里插入图片描述

  1. 从 cache 中读取数据,读取到就直接返回
  2. cache中读取不到的话,就从 DB 中读取数据返回
  3. 再把数据放到 cache 中。

问题一 “在写数据的过程中,可以先删除 cache ,后更新 DB 么?”

不可以。会导致数据不一致。

请求1先把cache中的A数据删除 -> 请求2从DB中读取数据->请求1再把DB中的A数据更新。

(所以请求二读取的是过时的数据。因为请求一写的数据还没来得及更新到数据库)

问题二
“在写数据的过程中,先更新DB,后删除cache就没有问题了么?”

可能会出现数据不一致性的问题,不过概率非常小,因为缓存的写入速度是比数据库的写入速度快很多!

缺陷1:首次请求数据一定不在 cache 的问题

缺陷2:写操作比较频繁的话导致cache中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值