• 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 放弃

  • 相关阅读:
    mssqlserver字符串日期互相转换
    使用TripleDES算法加密/解密
    记录google,yahoo,bing爬虫记录的插件
    C#中编写sqlserver中自定义函数,实现复杂报表
    最基本的Socket编程 C#版
    基于.net平台的web框架搭建
    未来五年程序员需要掌握的10项技能
    一段输入框控制代码,包含所有控制条件!
    C#多线程编程实例编程
    C# WinForm开发系列 Socket/WCF/Rometing/Web Services
  • 原文地址:https://www.cnblogs.com/aGboke/p/6637611.html
Copyright © 2020-2023  润新知