Redis之事务

redis中的事务是一组命令的集合。事务同命令一样都是redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。事务的原理是先将属于一个事务的命令发送给redis,然后再让redis依次执行这些命令。

1.事务命令

mullti
...
...
exec

当把所有要在同一事务中执行的命令都发给Redis后,使用exec命令将等待执行的事务队列中的所有命令按照发送顺序依次执行。exec命令的返回值就是这些命令的返回值组成的列表,返回值顺序和命令的顺序相同。

2.错误处理

(1)语法错误。语法错误指命令不存在或者命令参数的个数不对。

  只要有一个命令有语法错误,执行exec命令后redis就会直接返回错误,连语法正确的命令也不会执行。

(2)运行错误。运行错误指在命令执行时出现的错误,这种错误在实际执行之前redis是无法发现的,所以在事务里这样的命令是会被redis接受并执行的。如果事务里的一条命令出现了运行错误,事务里的其他命令依然会继续执行(包括出错命令之后的命令)。

redis事务没有关系数据库提供的回滚(rollback)功能。

3.watch命令

watch命令可以监控一个或多个键,一旦其中有一个键被修改(或删除),之后的事务就不会执行。监控一直持续到exec命令。事务中的命令是在exec之后执行的,所以在multi命令后可以修改watch监控的键值。

set wa 1
watch wa
set wa 2
multi
set wa 3
set we 2
exec
在执行watch命令后,执行事务前修改了key值,所以最后事务中的命令全部不执行,exec返回空结果。

执行exec命令后会取消对所有键的监控,如果不想执行事务中的命令也可以使用unwatch命令来取消监控。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值