Redis事务处理不回滚

redis 的事务处理不像传统的关系型数据库那样支持回滚

redis事务相关命令

"multi":进入事务上下文

"exec":顺序执行事务等待队列

"discard":取消当前事务

redis在进入事务上下文后,并不会马上就执行命令,而是把命令放入一个队列,在键入exec后,才会根据队列的顺序,顺序执行队列里的命令

我们可以通过一些例子来看看redis的事务处理

在命令行里输入"multi"后,这时就已经进入了事务的上下文里

我们可以设置三个键来测试一下

在事务上下文里,成功将键加入事务队列里的话,就会返回"QUEUED",

然后,输入"exec"命令,redis就会按照顺序来执行

返回"OK"表示命令执行成功

查看一下,可以看到三个键均成功被赋值

当然,如果在事务上下文里,你想取消这次事务了,可以通过输入"discard"来放弃这次事务,那么这次所有在事务上下文里输入的命令都不会执行

而说回redis的事务并不支持回滚,我们可以通过下面例子来看到

在上面刚开始的时候我们设置了三个键,其中"lim"是字符串型,而"tim"、“pim"则是整型数字,在下面图中,可以看到三个键都是用了"incr"自增命令,返回都是"QUEUED”,说明都成功的加入了事务处理等待队列,然而执行了"exec"后,其中的"lim"键因为出错了所以值还是保持不变,可是其它两个键却成功的自增了,数值发生了改变,并没有出现像传统关系型数据库那样的事务回滚(所有命令都回滚恢复成原先的状态),redis依旧执行了那些没出错的命令

所以能看出来,redis的事务处理并不支持回滚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值