【redis】缓存双写一致性之更新策略探讨(上)

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、面试题
  • 二、缓存双写一致性,谈谈你的理解
    • 1、redis中有无数据
    • 2、缓存按照操作来分,细分两种
      • a、读写缓存
    • 3、一图搞定代码
      • a、普通进行双写的代码
      • b、采用`双检加锁`策略 双重检测加锁
  • 三、数据库与缓存一致性的几种更新策略
    • 1、可以停机的情况
    • 2、4种更新策略
      • a、X 先更新数据库,再更新缓存
      • b、X 先更新缓存,再更新数据库
      • c、X 先删除缓存,再更新数据库
        • 问题
        • 解决方案
      • d、先更新数据库,再删除缓存
        • 异常问题
        • `解决方案`
    • 3、小总结
      • 如何选择方案?利弊如何 建议第四种
      • 一图总结


前言

【redis】缓存双写一致性之更新策略探讨(上)_第1张图片


一、面试题

【redis】缓存双写一致性之更新策略探讨(上)_第2张图片

二、缓存双写一致性,谈谈你的理解

【redis】缓存双写一致性之更新策略探讨(上)_第3张图片

1、redis中有无数据

【redis】缓存双写一致性之更新策略探讨(上)_第4张图片

2、缓存按照操作来分,细分两种

只读缓存 和 读写缓存

a、读写缓存

同步直写策略在这里插入图片描述

异步直写策略在这里插入图片描述

3、一图搞定代码

a、普通进行双写的代码

【redis】缓存双写一致性之更新策略探讨(上)_第5张图片
低并发可以使用 (QPS<1000)但是遇到高并发时,第2和3步不是原子的,会造成写入覆盖
【redis】缓存双写一致性之更新策略探讨(上)_第6张图片

b、采用双检加锁策略 双重检测加锁

【redis】缓存双写一致性之更新策略探讨(上)_第7张图片
【redis】缓存双写一致性之更新策略探讨(上)_第8张图片
【redis】缓存双写一致性之更新策略探讨(上)_第9张图片


三、数据库与缓存一致性的几种更新策略

【redis】缓存双写一致性之更新策略探讨(上)_第10张图片
【redis】缓存双写一致性之更新策略探讨(上)_第11张图片

1、可以停机的情况

在这里插入图片描述

2、4种更新策略

【redis】缓存双写一致性之更新策略探讨(上)_第12张图片

a、X 先更新数据库,再更新缓存

异常问题1【redis】缓存双写一致性之更新策略探讨(上)_第13张图片

异常问题2【redis】缓存双写一致性之更新策略探讨(上)_第14张图片

b、X 先更新缓存,再更新数据库

不推荐,业务上一般把数据库作为底单数据库,保证最后解释
【redis】缓存双写一致性之更新策略探讨(上)_第15张图片

c、X 先删除缓存,再更新数据库

问题

【redis】缓存双写一致性之更新策略探讨(上)_第16张图片
步骤1 A先删除缓存,但未及时回写,此时B来读取缓存
【redis】缓存双写一致性之更新策略探讨(上)_第17张图片

步骤2 B没有得到缓存,就去数据库,得到旧值并回写
【redis】缓存双写一致性之更新策略探讨(上)_第18张图片

步骤3 A更新完成 但B已经回写了旧值,此时产生数据不一致情况【redis】缓存双写一致性之更新策略探讨(上)_第19张图片
梳理
【redis】缓存双写一致性之更新策略探讨(上)_第20张图片
【redis】缓存双写一致性之更新策略探讨(上)_第21张图片
在这里插入图片描述

解决方案

【redis】缓存双写一致性之更新策略探讨(上)_第22张图片

休眠多久?
【redis】缓存双写一致性之更新策略探讨(上)_第23张图片
休眠导致吞吐量降低怎么办?
【redis】缓存双写一致性之更新策略探讨(上)_第24张图片
看门狗WatchDog

d、先更新数据库,再删除缓存

异常问题

【redis】缓存双写一致性之更新策略探讨(上)_第25张图片
在这里插入图片描述

解决方案

加入消息队列
【redis】缓存双写一致性之更新策略探讨(上)_第26张图片
细节:在这里插入图片描述

在这里插入图片描述

3、小总结

如何选择方案?利弊如何 建议第四种

【redis】缓存双写一致性之更新策略探讨(上)_第27张图片

一图总结

【redis】缓存双写一致性之更新策略探讨(上)_第28张图片

你可能感兴趣的:(redis,redis)