17 Redis缓存更新策略(缓存和数据库更新选择)

本文探讨了四种不同的缓存与数据库同步更新策略及其潜在问题:先更新数据库再更新缓存、先删除缓存再更新数据库、先更新数据库再删除缓存、先更新缓存再更新数据库。针对每种策略,分析了其可能导致的数据不一致性和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 先更新数据库,在更新缓存

  • 会有异常
  • 更新完Mysql,发生异常,redis还没有更新,导致redis的是旧数据,下次读取缓存读的是脏数据

2.先删除缓存,在更新数据库

1.在这里插入图片描述

  1. 缓存已经删了,mysql还在更新中。。。
  2. 由于Mysql还在更新中,会读取到Mysql的旧值,回写到redis
  3. 低并发:写入旧值 高并发:缓存击穿
解决方案

延迟双删策略
在这里插入图片描述
带来的问题

  1. 删除要多久
    在这里插入图片描述

  2. mysql主从架构会怎么样
    在这里插入图片描述

  3. 这种同步淘汰策略,吞吐量降低怎么办
    在这里插入图片描述

3.先更新数据库,在删除缓存

在这里插入图片描述
可能读到数据库旧值

在这里插入图片描述
在这里插入图片描述

4.先更新缓存,在更新数据库

不行

在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值