Redis的事务:
(1)开启事务:multi
(2)命令入队:……
(3)执行事务:Exec
(4)放弃事务:DISCARD,队列中命令都不会执行
Redis的事务本质:
(1)是一组命令的集合,一个事务中所有的命令都会被序列化,执行的时候按照顺序执行;
(2)redis事务具有一次性、顺序性、排它性;
(3)Redis的事务没有隔离级别的概念,所有的命令在事务中并没有直接执行,只有发起执行命令的时候才会执行(Exec)
Redis事务异常:
(1)命令异常:事务队列中如果有命令异常项,那么整个事务都不会执行;、
(2)运行时异常:事务跳过异常项,继续执行。如:执行队列中有一项为字符串值加1;
Redis的监控:
在多线程操作中,redis提供了watch命令可以实现乐观锁操作。使用unwatch解锁。可以实现秒杀业务场景。
案例:A线程事务中需要修改值C的value,B线程事务中也需要修改值C的value,且B线程对C的value进行了watch监控,如果A线程事务先开始Exec,那么B线程对C的修改将无效。