Redis事务
事务命令
Redis的事务机制
总结:
Redis不保证原子性:
在Redis中,单条命令是原子执行的,但是事务不保证原子性,且没有回滚的概念。事务中任意命令执行失败,其余的命令仍会执行。
Redis事务是没有隔离级别的概念:
在发送exec命令前,批量的操作都只是被放入队列,并不会实际执行,所以在事务内的查询是看不到事务里的更新的,且事务外查询也不能看到。
**discard:**取消事务,放弃执行事务块内的所有命令
**exec:**执行所有事务块内的命令
**multi:**标记一个事务块的开始
**unwatch:**取消watch命令对所有key的监视
**watch key[key...]:**监听一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断
一个事务从开始到执行主要是三个阶段:
在执行exec之前,所有的命令在事务队列中,并没有直接被执行,只有发起执行命令才会执行。
正常事务执行:
放弃事务:discard
执行时异常:
编译时异常:
编译时异常(命令错误),事务中所有的命令都不会被执行
watch命令:
正常执行成功
Redis中事务执行分为三个阶段,开始事务(multi)、命令入队、执行事务(exec)redis是无法回滚,如果发现事务中某一个命令有问题,只能结束掉整个事务(discard),有时事务在执行的时候不希望被别的事务干扰可以使用watch方法。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_45981295/article/details/121614162
内容来源于网络,如有侵权,请联系作者删除!