当前位置:网站首页>13_Redis_事务
13_Redis_事务
2022-07-02 12:00:00 【听*雨声】
事务
Mysql:ACID
原子性:要么同时成功,要么同时失败
Redis事务本质︰一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程的中,会按照顺序执行!
特性:
- 一次性:一组命令会在一个队列中一次性执行
- 顺序性:一组命令按照顺序执行
- 排他性:事务在执行的过程中是不允许被别人打断的
Redis事务没有没有隔离级别的概念!
所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行!Exec
Redis单条命令是保证原子性的,但是事务不保证原子性!
redis的事务∶
- 开启事务(muti)
- 命令入队(…)
- 执行事务 (exec)
事务操作
正常执行事务
127.0.0.1:6379> multi // 开启事务
OK
127.0.0.1:6379(TX)> set k1 v1 // 命令入队
QUEUED
127.0.0.1:6379(TX)> set k2 v2
QUEUED
127.0.0.1:6379(TX)> get k1
QUEUED
127.0.0.1:6379(TX)> set k3 v3
QUEUED
127.0.0.1:6379(TX)> exec //执行事务
1 ) OK
2 ) OK
3 ) “v1”
4 ) OK
放弃事务
127.0.0.1:6379(TX)> set k1 v11
QUEUED
127.0.0.1:6379(TX)> set k2 v22
QUEUED
127.0.0.1:6379(TX)> set k4 v4
QUEUED
127.0.0.1:6379(TX)> DISCARD // 取消事务
OK
127.0.0.1:6379> get k4 // 事务队列中命令都不会被执行!
(nil)
事务异常
编译型异常(代码有问题!命令有错!),事务中所有的命令都不会被执行!
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set k1 v1
QUEUED
127.0.0.1:6379(TX)> set k2 v2
QUEUED
127.0.0.1:6379(TX)> set k3 v3
QUEUED
127.0.0.1:6379(TX)> getset k2 // 错误的命令
(error) ERR wrong number of arguments for ‘getset’ command
127.0.0.1:6379(TX)> set k4 v4
QUEUED
127.0.0.1:6379(TX)> exec // 执行事务报错! 所有的命令都不会被执行!
(error) EXECABORT Transaction discarded because of previous errors.
运行时异常( 1/0),如果事务队列中存在语法性,那么执行命令的时候,其他命令是可以正常执行的,错误命令抛出异常!(也就是说事务没有原子性)
127.0.0.1:6379> set k1 “v1”
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> INCR k1 // 字符串是不能加一操作的
QUEUED
127.0.0.1:6379(TX)> set k2 v2
QUEUED
127.0.0.1:6379(TX)> set k3 v3
QUEUED
127.0.0.1:6379(TX)> get k3
QUEUED
127.0.0.1:6379(TX)> exec
1 ) (error) ERR value is not an integer or out of range // 虽然第一条命令报错了,但是依旧正常执行成功了!
2 ) OK
3 ) OK
4 ) “v3”
127.0.0.1:6379> get k2
“v2”
边栏推荐
- Tidb environment and system configuration check
- Learn the method code example of converting timestamp to uppercase date using PHP
- LeetCode 2320. 统计放置房子的方式数
- 牛客练习赛101
- C#延时、在线程中开启定时器、获取系统时间
- C语言实现N皇后问题
- [untitled] leetcode 2321 Maximum score of concatenated array
- 数据分析常见的英文缩写(一)
- 【C语言】详解指针的初阶和进阶以及注意点(1)
- . Net core logging system
猜你喜欢

Li Chuang EDA learning notes 15: draw border or import border (DXF file)

20_Redis_哨兵模式

Wechat applet uses towxml to display formula

The past and present lives of visual page building tools

实用调试技巧

C language exercises - (array)

Ad20 cannot select the solution of component packaging in PCB editor

02_线性表_顺序表

电脑怎么设置扬声器播放麦克风的声音

05_队列
随机推荐
TiDB 软件和硬件环境建议配置
【NOI模拟赛】伊莉斯elis(贪心,模拟)
表格响应式布局小技巧
The past and present lives of visual page building tools
c语言入门--数组
华为面试题: 没有回文串
Btrace- (bytecode) dynamic tracking tool
IE 浏览器正式退休
btrace-(字节码)动态跟踪工具
实用调试技巧
[untitled] leetcode 2321 Maximum score of concatenated array
CodeCraft-22 and Codeforces Round #795 (Div. 2)D,E
How to conduct TPC-C test on tidb
Leetcode - Search 2D matrix
[c voice] explain the advanced pointer and points for attention (2)
C语言实现N皇后问题
Tidb data migration tool overview
关于网页中的文本选择以及统计选中文本长度
LeetCode 2310. 个位数字为 K 的整数之和
. Net core logging system