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

news2024/12/24 10:57:56

系列文章目录

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


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

文章目录

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


前言

在这里插入图片描述


一、面试题

在这里插入图片描述

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

在这里插入图片描述

1、redis中有无数据

在这里插入图片描述

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

只读缓存 和 读写缓存

a、读写缓存

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

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

3、一图搞定代码

a、普通进行双写的代码

在这里插入图片描述
低并发可以使用 (QPS<1000)但是遇到高并发时,第2和3步不是原子的,会造成写入覆盖
在这里插入图片描述

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

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


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

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

1、可以停机的情况

在这里插入图片描述

2、4种更新策略

在这里插入图片描述

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

异常问题1在这里插入图片描述

异常问题2在这里插入图片描述

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

不推荐,业务上一般把数据库作为底单数据库,保证最后解释
在这里插入图片描述

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

问题

在这里插入图片描述
步骤1 A先删除缓存,但未及时回写,此时B来读取缓存
在这里插入图片描述

步骤2 B没有得到缓存,就去数据库,得到旧值并回写
在这里插入图片描述

步骤3 A更新完成 但B已经回写了旧值,此时产生数据不一致情况在这里插入图片描述
梳理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决方案

在这里插入图片描述

休眠多久?
在这里插入图片描述
休眠导致吞吐量降低怎么办?
在这里插入图片描述
看门狗WatchDog

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

异常问题

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

解决方案

加入消息队列
在这里插入图片描述
细节:在这里插入图片描述

在这里插入图片描述

3、小总结

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

在这里插入图片描述

一图总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移动通信技术的毫米波波束成形系统构成

随着通信产业尤其是移动通信的高速发展&#xff0c;无线电频谱的低端频率已趋饱和。采用各种调制方法或多址技术扩大通信系统的容量&#xff0c;提高频谱的利用率&#xff0c;也无法满足未来通信发展的需求&#xff0c;因而实现高速、宽带的无线通信势必向微波高频段开发新的频…

No.035<软考>《(高项)备考大全》【第19章】流程管理

【第19章】流程管理1 章节相关2流程管理基础3 流程分析、设计、实施与评估4 流程重构与改进5 项目管理流程的管理和优化6 练习题参考答案1 章节相关 本章节看一遍即可。 2流程管理基础 ★1、BPM是一种以规范化的构造端到端的卓越业务流程为中心&#xff0c;以持续的提高组织…

Springboot基础学习之(十九):通过Mybatis和shiro框架实现授权功能

在shiro整合mybatis实现认证功能 在此篇文章的基础上实现授权的功能&#xff1a;对网页的访问设置权限&#xff0c;只有登录的用户具有该网页的访问权限才能够访问此网页&#xff0c;那篇文章已经将系统的环境全都配好了&#xff0c;只需要在完善功能即可&#xff0c;所以关于项…

怎么入驻Tik Tok的跨境MCN机构呢?

TIKTOK强势崛起&#xff0c;跨境MCN成黄金赛道 社交媒体格局的改变&#xff0c;往往体现在青少年身上。面对TIKTOK的强势崛起&#xff0c;全球社媒霸主Facebook已经出现衰落的趋势。 据相关数据显示&#xff0c;TIKTOK目前有四分之一的用户都是二十岁一下的青少年&#xff0c;拥…

大公司的okr管理- 氛围 + 月历

OKR之剑实战篇06&#xff1a;OKR致胜法宝-氛围&业绩双轮驱动&#xff08;下&#xff09;_vivo互联网技术的博客-CSDN博客 先说说氛围。组织氛围的提出者库尔特勒温被尊为“社会心理学之父”&#xff0c;他的核心理论非常通俗易懂&#xff0c;决定人类行为的&#xff0c;不是…

TK4860E交流充电桩检定装置

TK4860系列是专门针对现有交流充电桩现场检测过程中接线复杂、搬运困难、检测效率低、成本投入高等问题而研制的一系列高效检测仪器&#xff0c;旨在更好的开展充电桩的强制检定工作。 TK4860E交流充电桩检定装置是其中一款专用于现场检定电动汽车单相充电桩的一体式便携式仪器…

236页10万字精选数据中台建设方案2022版(word)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 1. 数据中台建设方案 1.1. 总体建设方案通过对客户大数据应用平台服务需求的理解&#xff0c;根据建设目标、设计原则的多方面考虑&#xff0c;建议采用星环科技Transwarp Data…

JAVA局域网飞鸽传书软件设计与实现

本文的目标是设计一个类似飞鸽传输的局域网通信软件&#xff0c;并分析它在其领域的优势。本设计以C编 写&#xff0c;能在windows 2000/net/xp等环境下运行。设计共分为五大模块&#xff0c;分别是&#xff1a;首先&#xff0c;介绍选题背景及意义和国内外研究现状&#xff1b…

【id:31】【20分】A. Point(类与构造)

题目描述 下面是一个平面上的点的类定义&#xff0c;请在类外实现它的所有方法&#xff0c;并生成点测试它。 输入 测试数据的组数 t 第一组测试数据点p1的x坐标 第一组测试数据点p1的y坐标 第一组测试数据点p2的x坐标 第一组测试数据点p2的y坐标 .......... 输出 输出…

阿里都在用的线上问题定位工具【收藏备用】

简介 Arthas 是Alibaba开源的Java诊断工具&#xff0c;动态跟踪Java代码&#xff1b;实时监控JVM状态&#xff0c;可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作 。支持JDK 6&#xff0c;支持Linux/Mac/Windows。这个工具真的很好用&#xff0c;而且入门超简单&…

【故障诊断】用于轴承故障诊断的性能增强时变形态滤波方法及用于轴承断层特征提取的增强数学形态算子研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。⛳座右铭&#…

动态网站开发讲课笔记06:JSP技术

文章目录零、本节学习目标一、JSP概述&#xff08;一&#xff09;什么是JSP1、JSP的概念2、JSP的特征&#xff08;1&#xff09;跨平台&#xff08;2&#xff09;业务代码相分离&#xff08;3&#xff09;组件重用&#xff08;4&#xff09;预编译&#xff08;二&#xff09;编…

Kettle(9.3.0)连接ClickHouse

注意&#xff1a;低版本的kettle即使装ClickHouse驱动包后也不一定支持ClickHouse数据库连接&#xff08;具体kettle从什么版本开始支持ClickHouse没测试过&#xff09;&#xff0c;只有高版本的kettle在安装ClickHouse驱动包后才支持ClickHouse数据库连接&#xff0c;因此这里…

海康工业相机USB相机问题排查思路—Windows 系统

​第一步骤:固件版本 a) 查看相机固件版本 b) 若较老建议升级成最新固件后再测试异常是否消失。 注意切勿跨大版本升级; 第二步骤:驱动排查查看客户端中 USB 相机枚举列表中的相机图标,正常情况下如图 2-1:若有“2”的字样(如图 2-2),则说明 PC 的 USB 口是 2.0 的,…

故障注入的方法与工具

可靠性是评估软件质量的重要属性&#xff0c;关键安全系统&#xff08;Safety Critical Systems&#xff0c;SCS&#xff09;对可靠性的要求尤为严格&#xff0c;因其一旦失效&#xff0c;将可能对生命、财产或环境造成重大损害。以汽车为例&#xff0c;ISO26262中ASIL D要求相…

TCP三次握手四次挥手及time_wait状态解析

TCP的建立——三次握手 1.服务器必须准备好接受外来的连接。通常通过调用socket&#xff0c;bind&#xff0c;listen这三个函数来完成&#xff0c;我们称之为被动打开(passive open)。 2. 客户端通过调用connect函数发起主动的打开(active open)。这导致客户TCP发送一个SYN(同步…

【分享】除了压缩文件,WinRAR还有这些好用的功能

WinRAR是一款功能强大的压缩软件&#xff0c;可以解压缩RAR、ZIP及其它类型文件。但很多人不知道&#xff0c;除了解压、压缩文件&#xff0c;WinRAR还有其他的功能&#xff0c;今天小编就来分享一下。 功能一&#xff1a;锁定文件&#xff0c;禁止增删或修改压缩包里的文件 W…

国内外人工智能AI工具网站大全(一键收藏,应有尽有)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 国内外人工智能AI工具网站大全&#xff08;一键收藏&#xff0c;应有尽有&#xff09;摘要一、AI写作工具二、AI图像工具2.1、常用AI图像工具2.2、AI图片插画生成2.3、AI图片背景移除…

基于电子商务平台客户管理系统的设计与实现_kaic

摘要 本论文旨在设计和实现一个基于电子商务平台的客户关系管理系统&#xff0c;以提高企业与客户之间的互动和关系维护效率。本文首先介绍了客户关系管理系统的相关理论和技术&#xff0c;并分析了其在电子商务平台中的应用价值。接着&#xff0c;进行了电子商务平台客户关系管…

微信小程序python+vue今日菜谱美食点赞收藏评价系统

谈到外出就餐&#xff0c;我们除了怕排队&#xff0c;也怕这家餐厅的服务员不够用&#xff0c;没人为我们点餐&#xff0c;那么一餐饭排队一小时&#xff0c;点餐恐怕也要花个半小时&#xff0c;这样不仅给消费者的用餐体验大打折扣同时也给商家的口碑造成了严重负面的影响&…