您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

redis的事务与关系型数据库事务

bubuko 2022/1/25 20:09:11 其他 字数 10408 阅读 828 来源 http://www.bubuko.com/infolist-5-1.html

1.关系型数据库的事务:要么全部成功,要么全部失败的一组操作(程序运行的最小执行单元);包括:声明式事务,注解式事务(给类或方法注解) 2.Redis事务:当你开启了事务之后,下面所执行的所有命令,都在排队执行的状态,当你提交时,会按照命令的顺序一次执行 1 127.0.0.1:6379> mult ...

1.关系型数据库的事务:要么全部成功,要么全部失败的一组操作(程序运行的最小执行单元);包括:声明式事务,注解式事务(给类或方法注解)

2.Redis事务:当你开启了事务之后,下面所执行的所有命令,都在排队执行的状态,当你提交时,会按照命令的顺序一次执行

1 127.0.0.1:6379> multi
2 OK
3 127.0.0.1:6379> set name 24
4 QUEUED(队列,排队的意思,待执行,还没有执行)
5 127.0.0.1:6379> incr name
6 QUEUED
7 127.0.0.1:6379> exec
8 1) OK
9 2) (integer) 25

3.MYSQL事务:

开启事务:start transaction

提交事务:commit

回滚事务:rollback

4.Redis事务:

multi:开启

exec:提交事务(execution的缩写)

discard:回滚事务(没提交一直是不变的)(就是取消事务,放弃执行事务块内的所有命令)

 1 127.0.0.1:6379> get name
 2 "25"
 3 127.0.0.1:6379> multi
 4 OK
 5 127.0.0.1:6379> incrby name 2
 6 QUEUED
 7 127.0.0.1:6379> incrby name 3
 8 QUEUED
 9 127.0.0.1:6379> discard
10 OK(因为是回滚事务,所以那些命令都没有执行)
11 127.0.0.1:6379> get name
12 "25"(只要没提交事务,都是不变的)

5.Redis事务执行期间,Redis不会再为其它客户端的请求提供任何服务

watch:监测事务

unwatch:取消监测

1 127.0.0.1:6379> watch name(先监测事务)(连接的客户端一)
2 OK
3 127.0.0.1:6379> multi
4 OK
5 127.0.0.1:6379> incrby name 2
6 QUEUED
7 127.0.0.1:6379> exec
8 1) (integer) 33
1 127.0.0.1:6379> watch name(连接的客户端二)
2 OK
3 127.0.0.1:6379> multi
4 OK
5 127.0.0.1:6379> incrby name 10
6 QUEUED
7 127.0.0.1:6379> exec(客户端一先提交了,所以客户端二没有被提供任何服务)
8 (nil)

6.在Redis事务中如果有某一条命令执行失败,其后的命令仍然会被继续执行

 1 127.0.0.1:6379> get name
 2 "35"
 3 127.0.0.1:6379> multi
 4 OK
 5 127.0.0.1:6379> incrby name 6
 6 QUEUED
 7 127.0.0.1:6379> incrby name 3
 8 QUEUED
 9 127.0.0.1:6379> incrby name aaa(错误的命令)
10 QUEUED
11 127.0.0.1:6379> incrby name 4
12 QUEUED
13 127.0.0.1:6379> exec
14 1) (integer) 41
15 2) (integer) 44
16 3) (error) ERR value is not an integer or out of range
17 4) (integer) 48(之后的仍然执行)
18 127.0.0.1:6379> 

 

redis的事务与关系型数据库事务

原文:https://www.cnblogs.com/liujinqq7/p/12386479.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶