事务-事务的基本操作(定义,取消,执行)|学习笔记

简介: 快速学习事务-事务的基本操作(定义,取消,执行)

开发者学堂课程【Redis 入门到精通(进阶篇)事务-事务的基本操作(定义,取消,执行)】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13431


事务-事务的基本操作(定义,取消,执行)

 

内容介绍

一、redis 事务界定的方式

二、事务定义过程中发现出了问题,怎么办?

 

一、redis 事务界定的方式

开启事务:multi

开启事务的作用:设定是事务的开启位置,此指令执行后,后续的所有指令均加入到事务中。

执行事务:exec

执行事务的作用:设定事务的结束位置,同时执行事务,与multi成对出现,成对使用。

注意:加入事务的命令暂时进入到任务队列中,并没有立即执行,只有执行exec命令才开始执行

进行操作:

1、启动服务器端口6379,同时开两个客户端已经连接,

在客户端1中 127.0.0.1:6379> set name itheima

OK

127.0.0.1:6379>get name

当客户端1 get name 时,在客户端2中,

127.0.0.1:6379> set name itcast

OK

127.0.0.1:6379>get name

这时执行,最后的值为“itcast”。这是因为没有事务造成的现象。

2、解决上述现象

执行multi命令:127.0.0.1:6379>multi

OK

再执行127.0.0.1:6379>set age 30

QUEUED(进入队列)

127.0.0.1:6379>get age

QUEUED(再进入队列)

127.0.0.1:6379>set age 31

QUEUED

127.0.0.1:6379>get age

QUEUED

127.0.0.1:6379>exec –(表示命令已输完,可以执行)

3、返回的结果为

1)、OK

2)、30

4)、OK

5)、31

返回的结果是每一个命令的执行结果,这就是整个事务的执行过程,在这个过程中,其他命令是不可能插队的。

 

二、事务定义过程中发现出了问题,怎么办?

取消事务:disard

取消事务作用:终止当前事务的定义,发生在multi之后,exec 之前

进行操作执行指令:

127.0.0.1:6379>multi

OK

127.0.0.1:6379>set age 32

QUEUED

127.0.0.1:6379>get age

QUEUED

127.0.0.1:6379>set age 33

QUEUED

127.0.0.1:6379>discard

OK

127.0.0.1:6379>exec

(eroor)ERR EXEC without MULTI(此执行必须有 multi,)

必须保障事务在定义过程中发现问题,可及时取消掉。

(注:没有其他事务命令,其他事务命令加到事务执行的序列中)

相关文章
|
7月前
|
C++
成员初始化表的执行顺序与顺写顺序无关
成员初始化表的执行顺序与顺写顺序无关
57 0
|
2月前
|
消息中间件 存储 缓存
如何在无状态函数中实现事务性操作
如何在无状态函数中实现事务性操作
|
Go 数据库
sync.Once-保证运行期间的某段代码只会执行一次
sync.Once-保证运行期间的某段代码只会执行一次
89 0
|
前端开发 关系型数据库 MySQL
用户重复注册分析-多线程事务中加锁引发的bug
用户重复注册分析-多线程事务中加锁引发的bug
146 0
|
Java Spring
代码如何实现事务查询
代码如何实现
133 0
|
存储 SQL NoSQL
事务功能使用及原理介绍(二)|学习笔记
快速学习事务功能使用及原理介绍
202 0
事务功能使用及原理介绍(二)|学习笔记
|
SQL 存储 NoSQL
事务功能使用及原理介绍(一)|学习笔记
快速学习事务功能使用及原理介绍
317 0
事务功能使用及原理介绍(一)|学习笔记
|
物联网 Linux 开发者
线程被取消的时候执行清理函数|学习笔记
快速学习线程被取消的时候执行清理函数
线程被取消的时候执行清理函数|学习笔记
|
NoSQL 程序员 Redis
事务操作的注意事项|学习笔记
快速学习事务操作的注意事项
|
容器
任务的批量提交invokeAll两种方法的区别
任务的批量提交invokeAll两种方法的区别
296 0