Redis事务的本质
- Redis的事务是一组命令的集合,一个事务中的命令会被序列化,按照顺序去执行,具有
一次性,排他性,顺序性
的特点去执行一系列命令 - Redis事务没有隔离级别
- Redis的单条命令是原子性的,但是
事务不是原子性的
- 命令在事务中不会直接执行,只有发起执行命令,才会顺序执行
Redis事务的过程
- 开启事务(mutli)
- 命令入队
- 执行事务(exec)
- 放弃事务的指令 Discard
事务会有两种异常
- 编译时异常,命令错误的时候,其他命令也不会执行
- 运行时异常,只是语法问题,但是命令没问题时,别的命令会执行
Redis中的监视
Watch监视,能实现一个乐观锁的功能,watch监视一个key后,会有一个类似version的功能,事务执行的时候,会进行对比version,观察这个key对应的value是否发生改变,如果改变,则事务不会执行