Redis事务

 在一个队列中 , 一次性 顺序性 , 排他性的执行一系列命令

MULTI    开始事务

EXEC     事务执行

DISCARD   放弃事务

WATCH   监视多个key

 

正常执行

    

放弃事务

    

 

全体连坐

      

  

冤头债主

    

 

watch监控

  悲观锁: 认为一定出错 修改时 锁定整个表

  乐观锁: 在每条记录后面加上version 查询时记录version值 当别人修改后 version++ 自己提交时发现version值变化了  即提交失败

 

 

           当监控k1时别人修改过k1队列中的建觉察不到 会出现nil为空     

 

  使用unwatch或者exec监控都会被取消

  watch类似乐观锁 事务提交时 如果key被别人修改后 整个事务队列都不会被执行

  通过watch监控多个key 倘若在watch之后有任何key发生了变化 exec命令执行的事务都将被放弃

 

posted @ 2019-03-13 10:01  dugujiujian  阅读(93)  评论(0编辑  收藏  举报