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


    事务

    定义:      

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

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

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

    作用:

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

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

       

    敲小黑板啦:

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

      

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

      

     悲观锁:

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

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

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

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

     乐观锁:

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

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

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

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

  • 相关阅读:
    [one day one question] safari缓存太厉害
    对工厂方法模式的一些思考(2)
    对工厂方法模式的一些思考(java语法表示)
    [选译]MySQL5.7以上Zip版官方安装文档
    clojure 使用阿里云仓库
    对jbox2d引擎的一些回顾与思考(swing实现demo)
    定位
    空白空间及溢出的处理
    BFC
    高度自适应
  • 原文地址:https://www.cnblogs.com/zly123/p/11733376.html
Copyright © 2020-2023  润新知