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

转载于:https://www.cnblogs.com/aGboke/p/6637611.html

redis学习之——Redis事务(transactions)相关推荐

  1. Redis学习笔记---Redis的事务

    Redis学习笔记-Redis的事务 1. Redis事务(弱事务)和Mysql事务对比 Atomicity(原子性):构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行. Redi ...

  2. Redis学习笔记~Redis在windows环境下的安装

    Redis是一个key-value的存储系统,它最大的特点就是可以将数据序列化到文件中. redis存储在服务器的内存或者文件中,它不是session,不是cookies,它只是个更安全,更稳定,更可 ...

  3. Redis学习笔记---Redis的主从复制

    Redis学习笔记-Redis的主从复制 1.Redis的高可用性 高可用性(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性. Rei ...

  4. Redis学习笔记---Redis的模式订阅与退订

    Redis学习笔记-Redis的模式订阅与退订 1.发布订阅简介 发布订阅是一种通信的模式,Redis提供了发布订阅功能,可以用于消息的传输 Redis的发布订阅机制包括三个部分,publisher( ...

  5. 【Redis学习】Transaction事务管理

    1.相关命令: (1)MULTI 标记一个事务块的开始.事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行. 返回值:总是返回 OK . redis ...

  6. Redis 学习 - 2.Redis高级:RDB AOF 事务 锁 删除策略 Bitmaps HyperLogLog GEO

    目录 2. Redis高级 2.1 Redis Linux安装 047-Linux安装redis 048-指定端口启动服务 049-指定配置文件启动服务 050-配置文件启动目录管理 2.2 持久化 ...

  7. 【Redis学习】Redis管理命令总结

    1.键管理 之前通过对五种数据类型的操作命令的学习发现,Redis在对每种数据进行处理之前,都要先指定该数据的key,然后再指定对该数据进行何种操作. Redis中的key有点类似于Java中的变量名 ...

  8. Redis学习之Redis概述及原理、基本操作及持久化

    一.Redis介绍 Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务 ...

  9. Redis学习之Redis概述与安装以及性能测试

    Redis入门 概述 Redis是什么 Redis(remote dictionary server)远程字典服务器 是一个开源的使用c语言编写.支持网络.可基于内存亦可持久化的日志型.key-val ...

  10. 【Redis学习】Redis的安装、管理、适用场合以及使用

    1.Redis概述 我们知道,内存是电脑主板上的存储部件,用于存储当前正在使用的数据和程序,CPU可以与内存直接沟通,所以访问速速非常高:而外存数据必须加载到内存以后程序才能使用.如果把CPU当做一个 ...

最新文章

  1. 1007 Maximum Subsequence Sum(两种思路)
  2. c语言作业 统计成绩,C语言作业 输入多名学生3门课程成绩,并统计成绩的平均分和总分,并根据总分输出名次。...
  3. oracle 度量 预警,度量阀值预警总结
  4. 百度智能搜索到底有多智能?
  5. LeetCode_Pascal's Triangle II_杨辉三角形II(Java实现)
  6. 命令行设置Java环境变量
  7. linux标准I/O——流的相关操作
  8. Linux 守护进程的启动方法
  9. 如何解决System.Web.HttpRequestValidationException的异常
  10. Oauth2.0 资源服务器搭建
  11. 【音视频】WIN8|WIN10的桌面采集技术-DXGI(一)
  12. 如何快速连接无线Wifi 使用二维码
  13. C# IE环境 - 重置IE( 注册表)
  14. 标量与向量乘积求导法则
  15. 数组元素全排列、组合 C语言代码
  16. Serval Project——Android
  17. SNP(单核苷酸多态性)准确性的验证,你造吗?
  18. 利用MATLAB免费生成GIF
  19. python收益风险点图_AAVE当前风险与收益是否有偏差?如何评估DeFi投资组合?
  20. 大数据在 IoT 的应用

热门文章

  1. 算法设计与分析第1章 算法概述
  2. logisitic和softmax函数
  3. java 对象内存布局_Java--对象内存布局
  4. can是什么时候处于显性_can总线怎么传输数据格式过程分析
  5. python 图像压缩后前端解压_Python在后台自动解压各种压缩文件的实现方法
  6. php ad 管理工具,打开AD管理工具连接到指定DC
  7. html div坐标定位,html div位置和显示
  8. 没有与参数列表匹配的 重载函数 getline 实例_面试题:方法重载的底层原理?...
  9. 架设win2003r2下配置好iis6+php+mysql_WIN2003+IIS6 PHP 5.3.8安装配置教程[图文]
  10. iis6如何升级iis7_IIS修复IIS出现错误后如何完全卸载重装