Redis事务

Redis事务

Redis中事务可以一次执行多个命令,是一组命令的集合,一个事务中所有的命令都会被序列化,在事务的执行过程中,会按照顺序串行化执行队列中的命令

Redis是一次性,顺序性,排他性的执行一个队列中的一系列命令
Redis不保证原子性
Redis中,单条命令的执行是原子性,但事务是不保证原子性,而且没有回滚的概念,事务中任意的命令执行失败,其他的命令是可以执行的

Redis中的事务是没有隔离级别的

事务命令

在这里插入图片描述
事务的执行过程:分成三个步骤
开始事务:multi
命令入队
执行事务:exec

所有的命令的事务中,并没有直接被执行,只有发起执行事务的命令时才会正常执行

正常执行

exec 正常提交事务
在这里插入图片描述

放弃事务

discard:放弃事务队列运行
在这里插入图片描述

编译时异常

如果命令错误,即编译时异常,事务中所有的命令都不会被执行
在这里插入图片描述

执行时异常

执行时异常,如果队列中存在错误的语法,执行命令的时候,其他的命令可以正常执行,错误的命令抛出异常
在这里插入图片描述

watch

监视一个或者多个key,如果事务在执行之前这个key被其他的命令改动,那么事务会被打断
可以当做乐观锁使用

正常情况下

在这里插入图片描述

使用watch当做乐观锁使用

使用watch监视Money,在窗口1监视money,并开始事务,在窗口2上对money做了修改,在窗口1执行事务时会执行失败
窗口二:
在这里插入图片描述
窗口一:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值