Redis的事务

概念

可以一次执行多个命令,本质上是一组命令的集合。
一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞

可以做什么

一个队列中,一次性,顺序性,排他性地执行一系列命令

常用命令

1.multi
标记开始事务
2.discard
取消事务,放弃执行事务里面的所有命令
3.exec
执行事务所有命令
4.watck key[key]
监控1个或多个key,如果在执行事务之前,这些key被其他命令改动,那么事务将被打断
5.unwatch
取消对所有key的监控

执行流程

正常执行

1.multi 开始事务
2.设置值是会显示queued,意思是入队
3.设置完后,exec,回显每条命令的执行结果

放弃事务

有时候命令打错了,或者输入信息有误/不一致,需要取消操作
使用discard即可放弃事务的所有命令的执行

命令错误

若在设置多个key时,某一个有语法错误,那么事务里的全部命令将不执行

运行错误

当你的语法没错,但是运行可能出现错误,如:尝试将一个string类型的数据进行数学操作
这时事务,将正确的命令通过执行,不符合redis的规范,将抛出对应的异常,且不回滚

watch

监控key
如果key被修改,那么在修改后的第一个事务失败

正常执行

1.watch key
2.开启事务,执行命令
3.正常执行,返回每条命令执行结果
在这里插入图片描述

被修改

1.watch ley
2.key被修改
3.开启事务,执行失败返回(nil)
在这里插入图片描述

unwatch

解除所有key的监控,可以对所有key任意修改

在这里插入图片描述
参考资料:尚硅谷周阳redis讲解

本文若有错误请指正,互相学习,加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值