redis事务不支持完整的acid机制,redis事务的流程分为组队和执行的流程,组队的过程某条命令发生错误,则全部报错,执行过程发生错误,仍继续执行,除了执行失败的命令之外,继续执行,没有事务隔离级别的概念

redis事务_乐观锁

锁机制

这里是以redis的单个服务器为基础介绍的,锁分为乐观锁和悲观锁

乐观锁

乐观锁是以版本号先后以区别的,redis事务监听key,当发现key前后的版本号发生改变,则事务执行失败,而redis的事务的锁就是乐观锁

悲观锁

没啥说的,全阻塞,原生的redis不能实现

redis事务_乐观锁_02

同时监听一个key,开启两个事务,当事务执行时候发现key的版本号改变,则事务执行失败

两种锁机制的缺陷

乐观锁:在高并发的环境下,将导致库存遗留问题(因为高并发的key的版本被多个事务持有修改,由此而竞争将导致事务执行失败)

悲观锁:并发能力不够