zoukankan      html  css  js  c++  java
  • redis学习之——Redis事务(transactions)

    Redis事务:可以一次执行多个命令,本质是一组命令的集合。一个事务中的,所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。

    常用命令:MULTI  开启事务  EXEC 提交事务、 DISCARD  放弃事务  WATCH  监控事务  UNWATCH   取消控事务

    case1:正常执行                                                   case2:放弃事务

    case3:全体连坐                                                                                     case4:冤头债主

     case5:watch监控

    悲观锁 :

     悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁.

    乐观锁:

          乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,
    乐观锁策略:提交版本必须大于记录当前版本才能执行更新

    exp: 你现有行用卡银行账户有2000元,你要消费500。欠额500

    exp: 你现有行用卡银行账户有1000元,你要消费500。欠额0,就在此时,你妈你给汇钱打入1000元,且在你之前提交事务,你的事务将提交失败。

     如何解决:使用 UNWATCH 放弃

  • 相关阅读:
    笛卡尔积
    Oracle语句以及各种知识点
    vue和angular的区别:
    vue的生命周期的理解
    使用递归实现一个数组的快速排序
    对css盒模型的理解
    对 超链接 的理解
    HTML语义化的理解
    HTML 、XHTML、H5的区别:
    mysql的使用相关问题
  • 原文地址:https://www.cnblogs.com/aGboke/p/6637611.html
Copyright © 2011-2022 走看看