Redis 事务
redis事务是不保证原子性的!单条命令保证原子性
redis事务没有隔离级别的概念
- redis事务的本质:一组命令的集合!一个事务中的所有命令都会序列化,在事务执行的过程中,会按照顺序执行。
- 一次性,顺序性,排他性执行一系列的命令
- 所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行!EXEC
Redis的事务- 开启事务(multi)
- 命令入队(写命令…)
- 执行事务(exec)
正常执行事务!
multi #开启事务
#命令入队
.....
#写各个命令
exec #执行事务
放弃事务 (discard)
multi #开启事务
#命令入队
.....
#写各个命令
discard #放弃事务 事务中的队列(命令)是不会执行的
当事务中出现编译异常(命令写错了) 所有的命令都不会执行
当事务中出现运行异常, 存在语法性错误(比如让字符串值+1),那么执行命令时,其他命令可以正常执行,错误命令抛出异常(所以没有原子性)