首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏兜兜毛毛

    Redis 事务8

    为什么要用事务 Redis的单个命令是原子性的(比如get set mget mset),如果涉及到多个命令的时候,需要把多个命令作为一个不可分割的处理序列,就需要用到事务。 Redis的事务涉及到四个命令: 命令 说明 multi 开启事务 exec 执行事务 discard 取消事务 watch 监视 事务用法 案例:张三(zhangsan)和李四(lisi)各有100 事务不能嵌套,多个multi命令效果一样。 通过exec的命令执行事务。如果没有执行exec,所有的命令都不会被执行。 如果中途不想执行事务了,怎么办? 可以调用discard可以清空事务队列,放弃执行。 这个显然不符合我们对原子性的定义,也就是我们没办法用Redis的这种事务机制来实现原子性,保证数据的一致。 为什么在一个事务中存在错误,Redis不回滚?

    63920发布于 2020-03-19
  • 来自专栏Ywrby

    8-TCL事务控制语言

    收款方余额修改 整个事务中两条语句必须全部正常执行,或者都不执行,否则就会发生逻辑上的错误 事务的ACID实现 Atomicity 原子性:原子性是指事务是一个不可分割的工作单元,事务中的操作要么都发生 ,要么都不发生 Consistency 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态 Isolation 隔离性:事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的 Isolation 隔离性:事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部 的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰 4. DDL语言没有事务之说) 语句1; 语句2; ... # 步骤三:结束事务 COMMIT; # 提交事务 ROLLBACK; # 回滚事务 # 实例:银行转账事务 DROP TABLE IF ) 允许事务读取未被其他事务提交的变更。

    98910编辑于 2022-10-27
  • Spring事务失效的8种场景

    数据库引擎不支持事务这里以 MySQL为例,MyISAM引擎是不支持事务操作的,一般要支持事务都会使用InnoDB引擎,根据MySQL 的官方文档说明,从MySQL 5.5.5 开始的默认存储引擎是 InnoDB ,那么新开启的事务可以生效吗? ,当前若存在事务则挂起,这就是主动不支持以事务方式运行了。 ,只有捕捉到异常事务才会生效。 8.

    41310编辑于 2024-11-27
  • 来自专栏Vincent-yuan

    Spring 事务失效的 8 大场景

    异常被吃了 异常类型错误 下面展开分析每一个场景: 数据库引擎不支持事务 这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 数据源没有配置事务管理器 如下代码所示,当前数据源若没有配置事务管理器,那也是白搭! Propagation.NOT_SUPPORTED: 表示不以事务运行,当前若存在事务则挂起。 这表示不支持以事务的方式运行,所以即使事务生效也是白搭! 总结:本文总结了 8事务失效的场景,其实发生最多就是自身调用、异常被吃、异常抛出类型不对这 3 个了,像文章开头说的那样,本文不一定总结得全,只是总结常见的事务失效的场景 转自: https://blog.csdn.net

    61840发布于 2021-08-10
  • 来自专栏微信公众号【Java技术江湖】

    Spring源码剖析8:Spring事务概述

    事务类型 数据库事务类型有本地事务和分布式事务: 本地事务:就是普通事务,能保证单台数据库上的操作的ACID,被限定在一台数据库上; 分布式事务:涉及两个或多个数据库源的事务,即跨越多台同类或异类数据库的事务 (由每台数据库的本地事务组成的),分布式事务旨在保证这些本地事务的所有操作的ACID,使事务可以跨越多台数据库; Java事务类型有JDBC事务和JTA事务: JDBC事务:就是数据库事务类型中的本地事务 Java EE事务类型有本地事务和全局事务: 本地事务:使用JDBC编程实现事务; 全局事务:由应用程序服务器提供,使用JTA事务; 按是否通过编程实现事务有声明式事务和编程式事务; 声明式事务:通过注解或 Spring支持声明式事务和编程式事务事务类型。 事务超时 所谓事务超时,就是指一个事务所允许执行的最长时间,如果超过该时间限制但事务还没有完成,则自动回滚事务

    82110发布于 2019-11-26
  • 来自专栏SAP供应链

    SAP PM 入门系列8 - PM事务代码

    SAP PM 入门系列8 - PM事务代码 IA07 Display General Task List IA03 Display Equipment Task List IA13 Display Notification IH01 Display Functional Location Structure MB11 Goods Movement MB31 Goods Receipt IW8W

    1.2K20发布于 2021-01-12
  • 来自专栏设计模式

    深入解析MySQL 8事务数据字典的变革

    一、事务数据字典的引入背景 在MySQL 8之前的版本中,元数据分散地存储在多个地方,包括元数据文件、非事务性表和特定于存储引擎的数据字典中。 为了解决这些问题,MySQL 8引入了事务数据字典,将元数据集中存储在具有事务功能的InnoDB表中,从而提供了一致性和可靠性的保证。 二、事务数据字典的内容 在MySQL 8中,事务数据字典(Data Dictionary)是一个集中的元数据存储系统,它包含了关于数据库对象的各种信息。 四、事务数据字典的影响 事务数据字典的引入对MySQL 8的性能和稳定性产生了积极的影响。首先,通过减少锁争用和最大限度地减少磁盘I/O操作,事务数据字典提高了数据库的整体性能。 总结 MySQL 8中新增的事务数据字典是一项重要的特性,它改变了元数据的管理方式,提供了集中式、事务性的存储机制。

    53910编辑于 2024-03-19
  • 来自专栏BAT的乌托邦

    【小家Spring】Spring-jdbc的使用以及Spring事务管理的8种方式介绍(声明式事务+编程式事务

    SQLException { System.out.println(dataSource); // com.mysql.jdbc.jdbc2.optional.MysqlDataSource@650eab8 (声明式+编程式) 声明式事务(5种方式) Spring同时支持编程式事务策略和声明式事务策略,只是大部分时候,我们都推荐采用声明式事务策略。 每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务;执行失败则隐式的回滚事务 对于正常的事务管理,是一组相关的操作处于一个事务之中,因此必须关闭数据库的自动提交模式。 事务属性可以理解成事务的一些基本配置,描述了事务策略如何应用到方法上。事务属性包含了5个方面,如图所示: ? int PROPAGATION_REQUIRED = 0; // 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。

    2K30发布于 2019-09-03
  • 来自专栏腾讯云数据库(TencentDB)

    学到这8点,才算真正理解事务

    本期解答的问题是:MySQL中如何避免长事务 视频核心信息: 关系型数据库特点之一就是支持事务,MySQL作为最受欢迎的关系型数据库,与支持事务引擎的特点密不可分。 在业务逻辑的编写中,如果没有规范事务的使用,会为业务性能埋下非常大的隐患。 本教程在业务侧和数据库两个层面介绍如何避免长事务,通过以下8点,可以真正理解事务锁。 ? ?

    73140发布于 2019-05-16
  • 来自专栏全栈程序员必看

    java 事务嵌套_Java事务以及嵌套事务

    最近遇到事务的处理,嵌套事务,自己研究,整理一下。 1 先看结论 1、在Java事务中,事务的嵌套,如果有事务成功,那么则都成功,否则都不会成功。 结论:并行事务不存在事务影响 4.2 场景:嵌套相同事务 a) 事务嵌套,在同一个事务中,没有对异常进行处理 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest rollbackFor = Exception.class) public void addUser7() { userRepository.save(new User(“user7”)); this.addUser8( new User(“user8”)); } @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class ) public void addUser8(User user) { userRepository.save(user); throw new RuntimeException(); } } 执行结果

    3.7K10编辑于 2022-11-07
  • 来自专栏全栈程序员必看

    java事务_Java 事务详解

    一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 二、Hibernate事务处理 (1)Hibernate事务处理 在Hibernate框架中,使用Transaction接口来维护了事务实现(JTA,JDBC)的抽象。 void rollback() 强制此事务回滚。 void setTimeout(int seconds) 它为由此实例开始的后续调用启动的任何事务设置事务超时。 Session,启动事务,执行所有与数据相关的工作,结束事务并关闭Session。 一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。

    2K20编辑于 2022-11-04
  • Java中非事务控制事务

    欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199 标题: Java中非事务控制事务 本文探讨Java中非事务控制事务的实践和应用。 在本文中,我们将讨论如何使用Java编程语言实现这些非事务控制事务,并提供一些具体的案例分析。 首先,让我们明确什么是非事务控制事务。 与传统的数据库事务不同,非事务控制事务是指在没有数据库事务的支持下,通过编程技术模拟出一些类似事务的特性。在这种情况下,我们需要保证一系列操作的原子性、一致性、隔离性和持久性。 如果转账成功,提交事务,并关闭数据库连接。 下面是一个示例代码,展示了如何在Java中实现这个非事务控制事务的转账功能。 总结: 在本文中,我们介绍了在Java中实现非事务控制事务的方法,并通过一个简单的案例分析进行了说明。非事务控制事务是一种在没有数据库事务支持的情况下,通过编程技术模拟出类似事务的特性的方法。

    20310编辑于 2025-08-29
  • 来自专栏Java技术栈

    Spring事务失效的 8 大原因,这次可以吊打面试官了!

    1 数据库引擎不支持事务 这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。 ,当前若存在事务则挂起,详细的可以参考《事务隔离级别和传播机制》这篇文章。 都主动不支持以事务方式运行了,那事务生效也是白搭! 8 异常类型错误 上面的例子再抛出一个异常: // @Service public class OrderServiceImpl implements OrderService { @Transactional 也像文章开头说的那样,本文不一定总结得全,只是总结常见的事务失效的场景,即使如此,这 8 点已经足以帮你吊打面试官了,如果你还知道其他场景也欢迎留言分享。

    1.2K21发布于 2020-02-12
  • 来自专栏分布式|微服务|性能优化|并发编程|源码分析

    Spring事务失效的 8 大原因,这次可以吊打面试官了!

    1 数据库引擎不支持事务 这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。 ,那么新开的事务管用么? ,当前若存在事务则挂起 都主动不支持以事务方式运行了,那事务生效也是白搭! 8 异常类型错误 上面的例子再抛出一个异常: // @Service public class OrderServiceImpl implements OrderService { @Transactional 本文不一定总结得全,只是总结常见的事务失效的场景,即使如此,这 8 点已经足以帮你吊打面试官了,如果你还知道其他场景也欢迎留言分享。

    58820发布于 2020-11-19
  • 来自专栏springBoot3.0

    事务

    所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。 《MySQL 技术内幕:InnoDB 存储引擎(第 2 版)》7.7 章这样写到: InnoDB 存储引擎提供了对 XA 事务的支持,并通过 XA 事务来支持分布式事务的实现。 分布式事务指的是允许多个独立的事务资源(transactional resources)参与到一个全局的事务中。事务资源通常是关系型数据库系统,但也可以是其他类型的资源。 全局事务要求在其中的所有参与的事务要么都提交,要么都回滚,这对于事务原有的 ACID 要求又有了提高。 解决幻读的方式主要有以下几种: 将事务隔离级别调整为 SERIALIZABLE 。 在可重复读的事务级别下,给事务操作的这张表添加表锁。

    76520编辑于 2023-03-06
  • 来自专栏基础知识文章

    事务

    1.事务处理 1.事务的概念 事务是针对数据库的一组操作, 它可以由-一条或多条SQL语句组成。 2.事务的基本操作 在默认情况下,用户执行的每一条SQL语句都会被当成单独的事务自动提交。 COMMIT; 如果不想提交当前事务,可以取消事务(即回滚)。 ROLLBACK; 事务的执行要么成功,要么就返回到事务开始前的状态,这就保证了同一事务操作的同步性和数据的完整性。 MySQL中的事务必须满足A、C、I、D这4个基本特性。 Atomicity: 原子性 一个事务必须被视为一个不可分割的最小工作单元,只有事务中所有的数据库操作都执行成功,才算整个事务执行成功。 Isolation: 隔离性 隔离性是指当一个事务在执行时,不会受到其他事务的影响。保证了未完成事务的所有操作与数据库系统的隔离,直到事务完成为止,才能看到事务的执行结果。 为了保证这些事务之间不受影响,对事务设置隔离级是十分必要的。

    72930编辑于 2022-05-05
  • 来自专栏全栈程序员必看

    Java 事务注解(注解式事务)

    spring中的@Transactional(rollbackFor = Exception.class)事务处理,当你的方法中抛出异常时,它会将 事务回滚,数据库中的数据将不会改变,也就是回到进入此方法前的状态 rollbackFor=Exception.class) 2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.class) 3 不需要事务管理的

    2K30编辑于 2022-07-29
  • 来自专栏跟着阿笨一起玩NET

    .NET事务 隐式事务(TransactionScope) 显示事务(CommittableTransaction) WebService(TransactionOption)

    、速度快,但功能简单,只能管理单一对象和单一持久资源间的事务,比如想在数据库 B 插入失败,则回滚对数据库 A 的操作,就无法用这种 ADO.NET 显式事务来实现。  分布式隐式事务(TransactionScope) 隐式事务不具有Commit、Roolback方法。 Enlist默认为true,SqlClient会自动检测是否存在事务,如果有事务,则自动登记到事务中。 ,因为Web Service方法只能用作事务中的根对象。 PS:WEB服务方法的TransactionOption默认属性为Disabled 提交事务ContextUtil.SetComplete(); 回滚事务ContextUtil.SetAbort();

    1.3K10发布于 2018-09-19
  • 来自专栏程序猿人

    事务及分布式事务

    事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。 这些操作要么都做,要么都不做,是一个不可分割的工作单位。 本地事务 本地事务要求符合ACID的特性: 1. Mysql的undo log记录了事务修改操作之前的数据,用于在当前事务发生回滚的时候,使该条数据状态恢复到事务开始前的状态。 2. Mysql中的Innodb引擎支持事务,有4个隔离级别: 读-未提交 读-未提交是说一个事务(假设A)可以读到其他事务(假设B)尚未提交的数据。 是一种无锁并发控制,原理是通过为事务分配单项增长的事务ID,并为每行数据保存一个版本链,版本链上的数据与修改它的事务ID相关联。 一部分是把大事务拆分为若干个小事务,将整个分布式事务T分解为n个子事务,我们命名T1,T2,...,Ti,...,Tn。每个子事务都应该、或者能被看做是原子行为。

    2.2K21发布于 2021-04-25
  • 来自专栏CSDN 迁移文章

    Spring 事务事务传播机制

    事务的回顾 在 MySQL 学习阶段,已经了解到了事务是一组操作的集合,也就是把所有的操作作为一个整体,一起向数据库提交或者撤销操作,要么同时成功,要么同时失败 一个事务的操作流程包括了,开启事务,执行事务操作 ,提交事务或回滚事务,对于回滚事务来说,如果程序在执行过程中出现了错误,那么此时就需要执行回滚事务 2. 编程式事务 Spring 手动操作事务和 MySQL 操作事务类似,也是分为开启事务,提交事务,回滚事务等三个操作,需要用到 DataSourceTransactionManager (事务管理器)来进行上述事务的操作 事务传播机制 事务传播机制是指在多个事务方法相互调用时,定义事务如何在这些方法之间传播的规则,也就是延用调用方法的事务还是再重新开启一个新事务 Spring 事务的传播机制有以下七种 事务传播机制 描述 B 以非事务方式执行,如果 A 有事务就抛出异常 Propagation.NESTED 如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行。

    65810编辑于 2024-12-20
领券