事务

Redis学习--Redis的事务与持久化

巧了我就是萌 提交于 2020-01-26 14:05:22
一、Redis的事务    Redis的事务与mysql中的事务是不一样的,Redis的事务主要是用来处理线程安全性问题。它的定义为:Redis事务是一个单独的隔离操作,事务中所有的命令都会序列化,按顺序地执行。事务在执行过程中,不会被其他客户端命令打断。   Redis执行命令是一个队列,它会把一堆命令都放在一个队列中然后顺序执行。因此Redis的执行命令有两个状态:第一个是组队状态,就是将要执行的命令组队在一起,如果组队过程中某个命令出错了,那么执行时整个队列命令都会取消;第二个状态是执行状态,如果执行状态中某个命令出错了,则只是出错的命令不会执行,其他的任然会继续执行。   Redis事务的三个特点:   1.单独的隔离操作。   2.没有隔离级别的概念。   3.不保证原子性,这是因为命令出错会继续执行,不会进行回滚。 二、Redis的持久化     1.RDB持久化方式   在指定的时间间隔内将内存中的数据集快照写入磁盘,在进行数据恢复时,将快照文件直接读取到内存中。   RDB的特点:   优点:   a.节省磁盘空间,这是因为RDB的持久化方式是会将当前时间前的数据快照进行清理,因此存储的快照只会是最近几次的。   b.恢复速度快,恢复的数据已经有了只是作一次拷贝,因此速度很快。   缺点:   a.备份快照的方式是根据时间周期进行备份,如果Redis意外的宕机

spring整合mybatis

允我心安 提交于 2020-01-26 08:18:47
spring整合mybatis的applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http:

springmvc常用注解和spring事务的四大特性、事务的传播特性

て烟熏妆下的殇ゞ 提交于 2020-01-26 01:59:30
springmvc常用注解和spring事务的四大特性、事务的传播特性 #1.springmvc常用注解 @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 @Scope注解 作用域 @Lazy(true) 表示延迟初始化 @Service用于标注业务层组件、 @Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即DAO组件。 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @Scope用于指定scope作用域的(用在类上) ---------------jsr250---- @PostConstruct用于指定初始化方法(用在方法上) @PreDestory用于指定销毁方法(用在方法上) @Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 @DependsOn:定义Bean初始化及销毁时的顺序 @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常 @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下: @Autowired

SAP 中常用的打开窗口及运行TCode方法

╄→гoц情女王★ 提交于 2020-01-26 01:02:37
更多内容关注公众号:SAP Technical 各位可以关注我的公众号:SAP Technical 若调用一个事务 在相同的会话(窗口)中 输入:/nxxxx(xxxx = 事务代码)。 在相同的会话(窗口)中,由此跳过初始屏幕。 输入:/*xxxx(xxxx = 事务代码)。 在附加会话中, 输入:/oxxxx(xxxx = 事务代码)。 若结束当前事务 输入:/n。 警告:未保存的更改将丢失,没有通知。 若删除当前会话。 输入:/i。 若生成一个会话清单 输入:/o。 若结束当前事务并返回开始菜单 输入:/ns000。 若登出系统 输入:/nend。 若以没有确认提示的方式登出系统 输入:/nex。 警告:未保存的更改将丢失,没有通知。 SE38:打开程序编辑窗口 SE80:对象导航窗口 SE91:消息定义 SE11:数据字典 SE37:查找函数模块 SMW0:打开WEB资源库 SM59:定义连接 SHDB:录制屏幕(BDC) SE37:函数模块管理 SE51:程序包含的屏幕维护 SE93:查看所有的TCode LPCONFIG:Logical Port Config 来源: CSDN 作者: SAPmatinal 链接: https://blog.csdn.net/SAPmatinal/article/details/103948327

数据库的事务与锁初理解

孤者浪人 提交于 2020-01-25 21:41:02
前沿: 以下内容大多来自以下三篇文章 Mysql事务与锁详解 MySqL 事务与锁的深入学习笔记 Mysql事务实现原理 (很推荐看下) 对于insert、update、delete,InnoDB会自动给涉及的数据加排他锁(X); 对于一般的select语句,InnoDB不会加任何锁 ,事务可以通过以下语句给显式的加共享锁或排他锁。 -- 共享锁: SELECT * from tb_user LOCK IN SHARE MODE ; -- 排他锁: SELECT * from tb_user FOR UPDATE ; 共享锁(S) 排它锁(X) 若某个事物对某一行加上了排他锁,只能这个事务对其进行读写,在此事务结束之前,其他事务不能对其进行 加任何锁 (如何执行的语句没有锁,那么就不会影响, 比如默认的select语句就是没有任何锁的 ),其他进程可以读取,不能进行写操作,需等待其释放。 排它锁是悲观锁的一种实现 执行存储过程,开启事务,但是不提交,即锁一直在 CREATE DEFINER = ` root ` @`localhost` PROCEDURE ` NewProc ` ( ) BEGIN start transaction ; set session transaction isolation level read committed ; SELECT name

对于事务ACID的理解

。_饼干妹妹 提交于 2020-01-25 16:45:40
ACID,即以下四点: 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务前后数据的完整性必须保持一致。 隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 持久性(Durability) 持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响 理解参考: https://blog.csdn.net/dengjili/article/details/82468576 来源: https://www.cnblogs.com/xc-chejj/p/10872908.html

InnoDB中的MVCC

断了今生、忘了曾经 提交于 2020-01-25 15:30:44
InnoDB的MVCC机制 InnoDB是一个多版本的存储引擎,它保存着已经改变的行的旧版本的信息,用来支持事务的性质例如并发和回滚。这些信息存储在一个称为回滚段(roolback segment)的数据结构中。InnoDB使用回滚段中的信息来执行事务回滚所需的撤销操作。还通过这些信息来构建行的早期版本,以便进行一致性读操作。一致性读是一种增强并发性的强大技术,允许查询在不等待其他事务释放锁的情况下继续进行。 一、InnoDB的行结构 innodb存储的最基本row中包含一些额外的存储信息 DATA_TRX_ID,DATA_ROLL_PTR,DB_ROW_ID,DELETE BIT 其中: 1、6字节的DATA_TRX_ID 标记了最新更新这条行记录的transaction id,每处理一个事务,其值自动+1。 2、7字节的DATA_ROLL_PTR 指向当前记录项的rollback segment的undo log记录,找之前版本的数据就是通过这个指针。 3、6字节的DB_ROW_ID,当由innodb自动产生聚集索引时,聚集索引包括这个DB_ROW_ID的值,否则聚集索引中不包括这个值 4、DELETE BIT位用于标识该记录是否被删除,这里的不是真正的删除数据,而是标志出来的删除。真正意义的删除是在commit的时候。 二、撤销日志 回滚段的undo

面试常考的mysql知识点

混江龙づ霸主 提交于 2020-01-25 14:44:28
秋招之后,部门又来了好多小鲜肉,其中有部分同学是没有用过MySQL的,我把自己以前做过的笔记又重新整理了一番,希望能够对新同学有帮助! 什么是DML、DDL、DCL? DML (data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是 用来对数据库里的数据进行操作的语言 DDL (data definition language):主要的命令有CREATE、ALTER、DROP等, DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL (Data Control Language):是 数据库控制功能。 是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句 。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL TCL (Transaction Control Language): 事务控制语言 ,包括:set transaction\rollback\savepoin MySQL常用命令 DDL 创建数据库 create database 数据库名; 查看数据库列表 show databases;

MySQL 8.0 技术详解

大兔子大兔子 提交于 2020-01-25 05:36:28
MySQL 8.0 简介 MySQL 5.7 到 8.0,Oracle 官方跳跃了 Major Version 版本号,随之而来的就是在 MySQL 8.0 上做了许多重大更新,在往企业级数据库的路上大步前行,全新 Data Dictionary 设计,支持 Atomic DDL,全新的版本升级策略,安全和账号管理加强,InnoDB 功能增强等,目前小版本已经 release 到 8.0.16,新的功能仍然在持续推出。 RDS MySQL 8.0 产品是阿里云推出的 MySQL 系列云产品之一,使用完全兼容 MySQL 8.0 的阿 里云 AliSQL 8.0 分支,除了官方在 MySQL 8.0 推出的全新功能外,AliSQL 沉淀了许多在 Alibaba 集团电商业务和云上几十万客户在使用 MySQL 过程中遇到的问题和需求,以此来加固AliSQL, 提升 AliSQL 的性能和稳定性。 下面分别对 MySQL 8.0 和 AliSQL 8.0 相关的版本和功能做简短的介绍: MySQL 8.0 版本更新 1. 数据字典 MySQL 8.0 摒弃了 Server Layer 定义的 FRM 文件和其它非事务表,使用了一组 InnoDB 表来 保存数据字典,支持事务特性。 2. Atomic DDL 在 Data Dictionary 支持事务特性的基础上,8.0 增加了一个