Redis09——事务(悲观锁、乐观锁)

事务

定义:      

  Redis事务是一个单独的隔离操作

    ①事务中所有的命令都会被序列化、按照顺序执行

    ②事务在执行过程中不会被其他客户端发送来的命令请求打断

作用:

  串联多个命令防止别的命令插队

  • multi:输入开始命令
  • exec:执行命令
  • discard:放弃组队(删除掉)

   

敲小黑板啦:

 如果在组队中出现了报告错误,执行时整个队列都会被取消掉

  

 如果在执行阶段某个命令出现错误,只有报错的命令不会被执行,其他的命令照常执行,不会回滚

  

 悲观锁:

  每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁

  这样别人想拿这个数据就会block(阻塞)直到他拿到锁

  传统的关系型数据库里面就是用到了很多这样的锁机制

  (行锁、表锁、读锁、写锁都是在操作之前先上锁)

 乐观锁:

  每次去拿数据的时候都认为别人不会修改,所以不会上锁

  但是在更新的时候会判断一下在此期间别人会不会更新这个数据,可以用版本号等机制

  乐观锁适用于多读的应用类型提高吞吐量

  Redis就是利用这种check-and-set机制实现事务的

原文地址:https://www.cnblogs.com/zly123/p/11733376.html