写的一致性问题之双写模式

news2024/9/23 15:24:49

文章目录

  • 1、先写mysql:mysql会回滚,而redis不会回滚
  • 2、先写redis:

在这里插入图片描述

1、先写mysql:mysql会回滚,而redis不会回滚

  1. 写入msql成功,写入redis也成功,但是后续事务提交失败,mysql会回滚,redis不会。
  2. 写入mysql失败,redis就不会写了,数据没有问题
  3. 写入mysql成功,redis写入失败,mysql会回滚

2、先写redis:

  1. 如果先写入redis失败,后续mysql就不会执行,两者数据都是旧数据
  2. 如果写入redis成功,mysql写入失败,redis不会回滚,导致数据不一致
  3. 如果写入redis成功,mysql写入成功,事务提交失败,mysql会回滚,redis不会回滚,导致数据不一致

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

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

相关文章

Django学习(一)

一、创建django项目 二、修改settings.py里的配置: 1、修改语言和时区: # 语言编码 LANGUAGE_CODE zh-hansTIME_ZONE UTCUSE_I18N True# 不用时区 USE_TZ False 2、配置数据库: DATABASES {default: {ENGINE: django.db.backends.m…

Python中的self有什么作用

你是否曾经好奇过,为什么Python类中的方法总是有一个神秘的self参数?为什么有时它似乎可有可无,有时却又不可或缺?今天,让我们一起深入探讨Python中self的奥秘,揭开面向对象编程的神秘面纱! 目录 引言:self的重要性self的本质:实例的引用为什么需要self?self的工作原理self的…

极米科技:走出舒适圈,推动数据架构现代化升级 | OceanBase 《DB大咖说》

《DB 大咖说》第 13 期,邀请到了极米科技软件与创新产品线高级架构师施刘凡来进行分享。 在小红书平台上,“是否应将家里的电视升级为投影仪?”这一话题激发了上百万篇笔记的分享与推荐,反映出年轻群体对投影仪的偏好。随着手机、…

Java MVC

1. MVC模式 1.1. JavaBean JavaBean:符合特定规范的Java类,是一种可重用的组件 特定规范: public, class, 提供无参数构造方法属性private提供public的getter和setter方法 功能分类: 封装数据:数据Bean&#xff0c…

【gtokentool】什么是数字货币?怎么使用?

一、什么是数字货币 数字货币是一种基于密码学原理,独立于传统银行体系运行的电子货币形式。数字货币具有以下特点: 去中心化:数字货币采用去中心化的交易验证方式,不依赖于任何中央机构或政府。安全性高:通过加密算法…

STM32G474之DAC

STM32G474分别使用CORDIC硬件和“math.h”的正弦值,从DAC1和DAC2输出。 1、DAC特点 PA4的附加功能为DAC1_OUT1,无需映射,直接将它配置为模拟功能,就可以使用了。 PA6的附加功能为DAC2_OUT1,无需映射,直接将…

数据结构-栈、队列-详解

数据结构-栈、队列-详解 1.前言2.栈2.1是什么2.2函数实现struct StackStackInitStackDestroyStackPushStackSizeStackEmptyStackTopStackPop 2.3小结 3.队列3.1是什么3.2函数实现struct QueueQueueInitQueueDestroyQueueEmptyQueuePushQueuePopQueueFrontQueueBackQueueSize 3.…

Verilog基础,原码,反码与补码的概念

Verilog模块初认识 1、Verilog模块(Module) Verilog中的module可以看成一个具有输入输出端口的黑盒子,该黑盒子有输入和输出接口(信号),通过把输入在盒子中执行某些操作来实现某项功能。(类似于C语言中的函数) 图1 模块示意图 1.1 模块描述 图1 所示的…

【408DS算法题】035进阶-17年真题_二叉树转中缀表达式

Index 真题题目分析实现总结 真题题目 请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出。 例如, 当下列两棵表达式树作为算法的输入时, …

vivado 定义约束设置和文件

步骤2:定义约束集和文件 首先创建一个新的约束集,并向其中添加一个空的XDC约束文件 示例设计已经包含两个约束集,但您没有在本实验室中使用它们。 1.在“流导航器”中,单击“项目管理器”部分中的“添加源”。 2.从“添加源”对话…

【自考zt】【软件工程】【21.10】

关键字: 软件需求基本性质、软件系统需求挑战、耦合(高内容,低无直接)、内聚(初始化时间)、uml包、rup边界类、测试首要目标、单元测试最后工作、性能需求 软件开发本质、软件需求规约三种风格、提炼、用…

windows C++ 并行编程-并发和UWP(二)

下面例程用于演示在UWP中进行并发编程。 示例: 创建 C Windows 运行时组件并从 C# 中使用它 假设有一个使用 XAML 和 C# 的应用,可用它来定义 UI 和 C Windows 运行时组件以执行计算密集型操作。 在此示例中,C 组件会计算给定范围中的哪些数字是质数。…

Sqoop 数据迁移

Sqoop 数据迁移 一、Sqoop 概述二、Sqoop 优势三、Sqoop 的架构与工作机制四、Sqoop Import 流程五、Sqoop Export 流程六、Sqoop 安装部署6.1 下载解压6.2 修改 Sqoop 配置文件6.3 配置 Sqoop 环境变量6.4 添加 MySQL 驱动包6.5 测试运行 Sqoop6.5.1 查看Sqoop命令语法6.5.2 测…

Maven与Gradle差异

作为Java 开发者,你平时用 Maven 还是 Gradle? 我一直用的都是 Maven,但是前几天做了一个小项目,用的是 Gradle,因工作需要就去了解了Gradle的相关信息。 直到看到 Spring 和 Spring Boot 都从 Maven 切换到 Gradle了…

鸿蒙界面开发——组件(4):图标小符号 (SymbolGlyph/SymbolSpan) 气泡提示Popup

SymbolGlyph 创建图标 SymbolGlyph通过引用Resource资源来创建,资源引用类型可以通过$r创建Resource类型对象。不支持子组件。 SymbolGlyph(value?: Resource)SymbolGlyph($r(sys.symbol.ohos_folder_badge_plus)).fontSize(96).renderingStrategy(SymbolRenderi…

【GD32】---- 使用GD32调试串口并实现printf打印输出

1 复制工程模板 直接复制工程模板里的系统文件和固件库文件到新的工程文件01_USART_Printf 2 新建keil工程 参考上一篇博文:【GD32】---- 移植工程模板及点灯测试 3 编写代码 3.1 创建USART文件 创建一个USART.c文件,放于05_UserDriver文件夹中 …

macOS安装Maven

安装Java Java Downloads | Oracle 官网下载默认说最新的Java22版本,注意这里我们要下载的是Java8,对应的JDK1.8 需要登陆Oracle,没有账号的可以百度下。账号:908344069qq.com 密码:Java_2024 Java8 jdk1.8配置环境变量 open -e ~/.bash_p…

关于edge浏览器登陆CSDN安全验证不跳出验证码

前言 也就是最近这几天才出现这个问题,以前用edge浏览器登陆csdn时即使需要安全验证也能正常弹出验证码,现在根本没反应。 正文 我用edge浏览器登陆时,显示如下界面,就卡住不动了。 起初我以为是我浏览器可能设置了拦截的问题…

数据分析利器:Java与MySQL构建强大的数据挖掘系统

数据分析在当今信息时代具有重要的作用,它可以帮助企业和组织深入理解数据,发现隐藏在数据中的模式和规律,并基于这些洞察进行决策和优化。Java与MySQL作为两个强大的工具,结合起来可以构建出一个高效、可靠且功能丰富的数据挖掘系…

《中文Python穿云箭量化平台二次开发技术09》设计一个可视化股票池量化平台项目用于实现选股和自动交易

《中文Python穿云箭量化平台》是纯Python开发的量化平台,因此其中很多Python模块,我们可以自己设计新的量化工具,例如自己新的行情软件、新的量化平台、以及各种量化研究工具。 穿云箭自带指标公式源码运行模块,可以为其他量化平台…