zoukankan      html  css  js  c++  java
  • Redis09——事务(悲观锁、乐观锁)

    事务

    定义:      

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

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

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

    作用:

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

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

       

    敲小黑板啦:

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

      

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

      

     悲观锁:

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

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

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

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

     乐观锁:

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

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

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

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

  • 相关阅读:
    系统架构
    Maven项目管理工具
    SpringMVC进阶(二)
    SpringMVC入门(一)
    Mybatis进阶(三)
    Mybatis进阶(二)
    Mybatis入门(一)
    Redis入门,Jedis和常用命令
    关于MVC 上传文件
    Html遮罩层的显示(主要在于样式设置)
  • 原文地址:https://www.cnblogs.com/zly123/p/11733376.html
Copyright © 2011-2022 走看看