事务的四个特性:
- 原子性 (atomicity):强调事务的不可分割。
- 一致性 (consistency):事务的执行的前后数据的完整性保持一致。
- 隔离性(isolation):一个事务执行的过程中,不应该受到其他事务的干扰。
- 持久性(durability) :事务一旦结束,数据就持久到数据库。
Redis事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程的中,会按照顺序执行!
一次性、顺序性、排他性!执行一系列的命令!
注意:Redis单条命令保证原子性,Redis事务不保证原子性。
Redis事务三个过程:
- 开启事务(multi)
- 命令入队(其他命令…)
- 执行事务(exec)
例子:
取消事务命令:Discard 事务队列中命令都不会被执行
异常:
- 运行时异常:如果事务队列中存在语法性,那么执行命令的时候,其他命令是可以正常执行的 ,错误命令抛出异常!
- 编译型异常(代码有问题!命令有错!),事务中所有的命令都不会被执行!