Redis和数据库一致性如何保证

news2025/1/5 8:36:19

三种经典的缓存模式

  • Cache-Aside Pattern(旁路缓存模式)
  • Read-Through/Write-through(读写穿透:和1类似)
  • Write-behind (异步批量从缓存写数据库)

旁路缓存模式

读流程

在这里插入图片描述

  • 读的时候,先读缓存,缓存命中的话,直接返回数据
  • 缓存没有命中的话,就去读数据库,从数据库取出数据,放入缓存后,同时返回响应。

写流程

在这里插入图片描述

  • 更新的时候,先更新数据库,然后再删除缓存。

更新缓存?删除缓存?

  • 如果你写入的缓存值,是经过复杂计算才得到的话。更新缓存频率高的话,就浪费性能啦。

双写时,先操作数据库

防止有请求从数据读入脏数据到缓存,造成数据不一致

如何保证一致性

延时双删

在这里插入图片描述

  1. 先删除缓存
  2. 再更新数据库
  3. 休眠一会(比如1秒),再次删除缓存。

这个休眠时间 = 读业务逻辑数据的耗时 + 几百毫秒。为了确保读请求结束,写请求可以删除读请求可能带来的缓存脏数据。

删除失败重试机制

在这里插入图片描述

  1. 写请求更新数据库
  2. 缓存因为某些原因,删除失败
  3. 把删除失败的key放到消息队列
  4. 消费消息队列的消息,获取要删除的key
  5. 重试删除缓存操作

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

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

相关文章

HTML5+CSS3笔记(Xmind格式):第四天

Xmind鸟瞰图: 简单文字总结: HTML5CSS3知识总结: 媒体查询: 1.媒体查询格式:media 设备类型 and 设备特性 2.screen:设置屏幕 3.max-width(最大宽度),min-width(最小宽度) 4.可以通过媒体…

阿里国际推出首个专业版AI Search,为什么它会是下一个B2B谷歌?

点击访问我的技术博客https://ai.weoknow.comhttps://ai.weoknow.com 经历过「千模大战」的喧嚣,一年半之后,生成式 AI 的应用层创新终于步入爆发期。 年初的 Sora 激起一阵 AI 视频生成的浪潮。涟漪未散,OpenAI 新的 SearchGPT 又燃起了 A…

CSP-J 复赛模拟题4 解析

需要注意的是&#xff0c;每次操作询问之后都不会对原序列进行修改&#xff0c;即每次操作都是在原序列上直接进行的。 就是说把到l到r之间的所有数用cnt每次加p就行了 根据解析写代码1&#xff1a; #include <bits/stdc.h> #define LL long long using namespace std;…

极狐GitLab安全版本:16.10.1、16.9.3、16.8.5

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

在Linux中,什么叫做线程

在Linux中&#xff0c;什么叫做线程&#xff1f; CPU调度的基本单位。 在Linux中&#xff0c;什么叫做进程&#xff1f; 内核视角&#xff1a; 承担分配系统资源的基本实体。 一个进程内部可以有多个执行流。 task_struct可以理解为轻量级进程。 线程是进程内部的一个分支…

Java15.0标准之重要特性及用法实例(二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…

WEB中间件TomCat详解

Java虚拟机详解 一、JVM 虚拟机常识 1、什么是JAVA虚拟机 所谓虚拟机&#xff0c;就是一台虚拟的计算机。在计算机系统上模拟运行一个完整的计算机系统的技术&#xff0c;他是一款软件&#xff0c;用来执行一系列虚拟计算机指令。大体上&#xff0c;虚拟机可以分为系统虚拟机…

鸿蒙第三方应用.hap打包、安装流程。

最近在华为手表上安装第三方应用&#xff08;源码打包构建应用&#xff0c;需要签名&#xff09;。网上看了教程&#xff0c;在此记录下。 准备工作&#xff1a;先安装DevEco Studio开发工具。 进入华为 appgallery connect网站&#xff08;注册、开发者实名认证&#xff09; …

八股文”在实际工作中的作用:敲门砖还是空谈?

文章目录 每日一句正能量前言“八股文”对招聘过程的影响“八股文”作为基础知识的筛选器面试中的“八股文”比重平衡“八股文”与实际编程能力“八股文”导致的面试准备策略变化“八股文”与实际工作技能的关联性对“八股文”依赖的反思创新面试方法的探索“八股文”在不同公司…

【递归和搜索】前言

递归&#xff1a;函数自己调用自己 为什么要用到递归&#xff1a; 递归的本质&#xff1a;处理最开始问题的逻辑和处理后面的问题的逻辑是相同的 主问题 --> 相同的子问题 子问题 --> 相同的子问题 如何理解递归&#xff1f; 1.递归展开的细节图 2.二叉树中的题目 3…

智能运动手表的功能

智能运动手表的功能 智能运动手表的功能&#xff0c;各家基本都大差不差。常用的基本可以分为以下几个大模块&#xff1a; 1.运动 运动类型&#xff1a;专业跑步课程&#xff0c;室内跑步&#xff0c;跳绳&#xff0c;骑行&#xff0c;徒步&#xff0c;游泳&#xff0c;潜水…

API开放平台项目全过程总结

项目整体流程介绍&#xff1a; 该项目是一个api的调用平台&#xff0c;类似于百度开发者中心&#xff0c;使用者可以访问然后调用自己需要的接口来实现自己的功能 该项目的简单模拟了这个流程 该系统有三个子后端系统&#xff0c;分别是传统的用户管理系统&#xff0c;API网…

在S/4HANA OP 1511中激活嵌入式分析的基本配置

大家好&#xff0c;在这篇博客中&#xff0c;我将讨论在 S/4HANA On-Premise 1511 版本中激活嵌入式分析的基本配置。本博客主要关注Fiori前端系统和S/4HANA后端系统的分离安装。让我们深入了解一下。 景观 前端系统 SAP Fiori for S/4HANA OP 1511 Bakend系统SAP S/4HANA后…

在Stable Diffusion中驱动Tesla P40

一、安装P40显卡 在前面我的“在win10电脑上搭建python环境下的本地AI绘画工具Stable Diffusion”博文中&#xff0c;Stable Diffusion的运行完全依赖CPU和内存&#xff0c;因此每生成一次图片&#xff0c;需几小时之多&#xff0c;我常是在临下班时开始生成&#xff0c;到第二…

CSS基础 - 基础

目录 一. 简介 二. 基本用法 三. 总结 一. 简介 CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式表&#xff09;是一种用于描述网页外观和布局的样式表语言。 一、基本作用 外观设计 CSS 可以控制网页中元素的颜色、字体、大小、粗细、样式&#xff08;如斜体…

电子电气架构 --- 车辆模式管理

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

【开源】嵌入式Linux(IMX6U)应用层综合项目(4)--音乐播放器APP

1.简介 此文章并不是教程&#xff0c;只能当作笔者的学习分享&#xff0c;只会做一些简单的介绍&#xff0c;其他的各位结合着代码和运行现象自己分析吧&#xff0c;相信通过函数名和注释&#xff0c;基本上是不难看懂代码的&#xff0c;其中涉及到的一些技术栈&#xff0c;也…

springboot员工健康管理系统论文源码调试讲解

1系统成功运行案例 2 相关技术 2.1 springboot框架介绍 本课题程序开发使用到的框架技术&#xff0c;英文名称缩写是springboot&#xff0c;在JavaWeb开发中使用的流行框架有SSH、SSM、springboot、SpringMVC等&#xff0c;作为一个课题程序采用SSH框架也可以&#xff0c;SSM框…

2002年-至今阿拉斯加北部的北极地区测量数据集(气候、冰层、生态系统和人类活动)

Measurements in the Arctic region north of Alaska in 2002 2002年-至今阿拉斯加北部的北极地区测量数据集 简介 2002年阿拉斯加北部的北极地区测量数据集提供了关于该地区环境变化的重要信息&#xff0c;涵盖气候、冰层、生态系统和人类活动等多个方面。以下是该数据集的…