Redis | Redis事务

x33g5p2x  于2021-12-06 转载在 Redis  
字(0.6k)|赞(0)|评价(0)|浏览(431)

Redis事务

事务命令

Redis的事务机制

总结:

Redis事务

Redis不保证原子性:

在Redis中,单条命令是原子执行的,但是事务不保证原子性,且没有回滚的概念。事务中任意命令执行失败,其余的命令仍会执行。

Redis事务是没有隔离级别的概念:

在发送exec命令前,批量的操作都只是被放入队列,并不会实际执行,所以在事务内的查询是看不到事务里的更新的,且事务外查询也不能看到。

事务命令

**discard:**取消事务,放弃执行事务块内的所有命令

**exec:**执行所有事务块内的命令

**multi:**标记一个事务块的开始

**unwatch:**取消watch命令对所有key的监视

**watch key[key...]:**监听一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断

Redis的事务机制

一个事务从开始到执行主要是三个阶段:

在执行exec之前,所有的命令在事务队列中,并没有直接被执行,只有发起执行命令才会执行。

正常事务执行:


放弃事务:discard

执行时异常:

编译时异常:

编译时异常(命令错误),事务中所有的命令都不会被执行

watch命令:

正常执行成功

总结:

Redis中事务执行分为三个阶段,开始事务(multi)、命令入队、执行事务(exec)redis是无法回滚,如果发现事务中某一个命令有问题,只能结束掉整个事务(discard),有时事务在执行的时候不希望被别的事务干扰可以使用watch方法。

相关文章

最新文章

更多