redis(九) Redis 事务(下)

5 怎么玩

5.1 常用命令

image.png

5.2 正常执行

image.png

5.3 放弃事务

image.png

5.4 全体连坐

image.png

5.5 冤头债主

image.png

5.6 watch监控

  • ① 悲观锁/乐观锁/CAS(Check And Set)

  • ② 初始化信用卡可用余额和欠额
    image.png

  • ③ 无加塞篡改,先监控再开启multi,保证两笔金额变动在同一个事务内
    image.png

  • ④ 有加塞篡改

监控了key,如果key被修改了,后面一个事务的执行失效
image.png

  • ⑤ unwatch
    image.png

  • ⑥ 一旦执行了exec之前加的监控锁都会被取消掉了

Watch指令,类似乐观锁,事务提交时,如果Key的值已被别的客户端改变,比如某个list已被别的客户端push/pop过了,整个事务队列都不会被执行

通过WATCH命令在事务执行之前监控了多个Keys,倘若在WATCH之后有任何Key的值发生了变化,EXEC命令执行的事务都将被放弃,同时返回Nullmulti-bulk应答以通知调用者事务执行失败

猜你喜欢

转载自blog.csdn.net/xuyuyong12344/article/details/89784830