[001-03-007].第07节:Redis中的事务

news2024/11/26 0:32:54

我的后端学习大纲

我的Redis学习大纲


1、Redis事务是什么:

  • 1.可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化, 按顺序地串行化执行而不会被其他命令插入,不许加塞
  • 2.一个队列中,一次性、顺序性、排他性的执行一系列命令
    在这里插入图片描述

2、Redis事务和数据库事务对比:

在这里插入图片描述


3、基本操作:

3.1.常用命令:

在这里插入图片描述

3.2.正常执行

  • 在执行exec命令的时候,会一次性的执行上述所有的命令
    在这里插入图片描述

3.3.放弃事务:

a.命令说明:

  • MULTI :事务开始
  • DISCARD :放弃事务

b.案例演示:

在这里插入图片描述

b.官网说明:

在这里插入图片描述


3.4.全体连坐:

a.命令说明:

  • 在MULTI 和 EXEC 之间有一个指令语法错误,所有的命令都不会执行

a.操作演示:

在这里插入图片描述

c.官网说明:

在这里插入图片描述


3.5.冤头债主:

a.命令说明:

  • 1.Redis 不提供事务回滚的功能,开发者必须在事务执行出错后,自行恢复数据库状态
  • 2.注意和传统数据库事务区别,不一定要么一起成功要么一起失败

b.操作演示:

在这里插入图片描述

c.官网说明:

在这里插入图片描述


3.6.watch监控:

a.Redis使用Watch 来提供乐观锁锁定

  • 1.悲观锁:
    • 认为每次去拿数据都很认为别人会修改,所以每次拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁
  • 2.乐观锁:
    • 认为每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,提交版本必须 大于 记录当前版本才能执行更新

b.watch

  • 1.初始化 键值(k1 和 balance 两个key),先监控再开启multi,保证两key变动在同一事务内
    在这里插入图片描述
b2.有加塞篡改:
  • 1.watch命令是一种乐观锁的实现,Redis在修改的时候会检测数据是否被更改,如果更改了,则执行失败
  • 2.第一个窗口蓝色框第5步执行结果返回为空,也就是相当于是失败,笔记见最下面官网说明
    在这里插入图片描述在这里插入图片描述

c.unwatch

  • 1.操作演示:
    在这里插入图片描述
  • 一旦执行了 exec 之前加的watch监控锁都会被取消掉
  • 当客户端连接丢失的时候(比如退出连接),所有东西都会被取消监视

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI+RPA机器人 实现自动调用 kimi 的 AI 对话功能(内附使用教程)

前言 今天尝试写一个用RPA自动调用kimi的AI对话功能。 把这个写好之后,就是后面其他一切AI相关的基础,比如自动用AI写文章啊,比如搭建一个微信AI机器人啊等等, 都能用到今天实现的AI对话功能。 话不多说,直接看思路…

在 Windows 中使用系统文件检查器

DiSM.exe /Online /Cleanup-image /Restorehealth

项目管理方法,方法和框架–初学者指南

项目管理方法,方法和框架–初学者指南 项目可以通过各种方式成功结束。但是,最好,最受欢迎的项目管理方法,方法和框架总是在变化。新概念无时无刻不在出现。所有成功的项目都包含一整套方法,工具和技术。实际上&#x…

基于SpringBoot+Vue+MySQL的考研互助交流平台

系统展示 用户前台界面 管理员后台界面 系统背景 本文设计并实现了一个基于SpringBoot、Vue.js和MySQL的考研互助交流平台。该平台旨在为广大考研学子提供一个集资源共享、学习交流、经验分享、心理辅导等功能于一体的综合性在线社区。通过SpringBoot构建高效稳定的后端服务&am…

Whistle 客户端抓包工具

Whistle 客户端 安装或更新 官网: 关于whistle GitBook (wproxy.org)https://wproxy.org/whistle/ Whistle 客户端目前只支持 Mac 和 Windows 系统,如果需要在 Linux、 Docker、服务端等其它环境使用,可以用命令行版本:GitHub…

汽车免拆诊断案例 | 沃尔沃V40 1.9TD断续工作

故障现象 一辆04款的沃尔沃V40 1.9 TD,发动机代码D4192T3,使用博世EDC15C发动机管理。客户说车子断续工作,怀疑是正时皮带出现问题。卸下上皮带盖,检查发现皮带仍然在原来的位置上并且没有出现松动。起动发动机,车辆能…

1 MATLAB 绘图函数函数: plot

>> t -10:0.001:10; >> x sin(t); >> plot(t,x)

python中,在.之后出现的提示中这些带圈的C代表什么意思?其前面的绿色红箭头和红色标记又代表什么意思?

python中,在.之后出现的提示中这些带圈的C代表什么意思?其前面的绿色红箭头和红色标记又代表什么意思? 在Python中,带圈的"C"通常表示"类"。这意味着在该提示中,你正在与一个类的属性或方法进行交…

【Linux】Linux权限历险记---组和用户的关系

欢迎来到 CILMY23 的博客 🏆本篇主题为:Linux权限历险记---组和用户的关系 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码训练营…

Java初步

背景 名字 Oak(橡树)改到一个岛(疑似盛产咖啡) Java之父 詹姆斯高斯林(James Gosling) sun公司研发 现在属于Oracle公司 把它称为甲骨文公司 应用 企业级应用开发 重点学习JavaSE(Standa…

归并排序/计数排序

1:归并排序 1.1:代码 void _MergeSort(int* arr, int left, int right, int* tmp) {if (left > right){return;}int mid (left right) / 2; _MergeSort(arr, left, mid, tmp); _MergeSort(arr, mid1, right, tmp); int begin1 left…

洗护工厂上门预约下单洗衣洗鞋门店小程序

洗护工厂上门预约下单洗衣洗鞋门店小程序定制; ​ ​用户扫码后在小程序自助下单,可预约上门送取件更便捷的洗衣洗鞋新体验! 案例介绍: 为洗衣洗鞋门工厂开发的一个洗鞋用户自己下单的软件,用户在线下单即可上门送取; 洗鞋小程序是…

[产品管理-5]:NPDP新产品开发 - 3 - 企业创新战略及创新战略框架与新产品开发(从市场、商业模式、产品、技术、成本等维度划分)

目录 一、什么是创新战略 1、定义与特点 2、类型与策略 3、核心要素与实施步骤 4、重要意义 二、创新战略框架 2.1 波特的创新战略框架(差异化战略框架) 1. 总成本领先战略(Overall Cost Leadership Strategy) 2. 广度选…

合适做项目交付的物联网平台:ThingsKit

ThingsKit,作为一个专为项目交付设计的物联网平台,凭借其强大的功能和灵活性,成为了众多企业的首选。 一、ThingsKit的核心优势 模块化设计:ThingsKit采用模块化设计,使得用户可以根据自己的需求灵活选择和组合不同的…

【软考中级攻略站】-软件设计师(7)- 结构化开发方法(数据流图)

系统设计基本原理 抽象是一种设计技术,重点说明一个实体的本质方面,而忽略或者掩盖不是很重要或非本质的方面。模块化是指将一个待开发的软件分解成若干个小的、简单的部分——模块,每个模块可独立地开发、测试,最后组装成完整的…

线下ERP与电商平台集成:点三API深度解析——优化电商订单数据同步的实践方案

随着电商市场的快速发展,线上订单与线下运营的无缝衔接成为了商家和企业提升运营效率的关键环节。尤其对于依赖ERP和WMS系统的企业而言,如何高效、快速地实现与电商平台的数据对接,确保订单、库存、物流等信息的实时同步,是优化供…

基于Spring Boot的电子请柬私人定制销售平台的设计与实现---附源码78900

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.1.1技术可行性 2.1.2经济可行性 2.1.3社会可行性 2.1.4法律可行性 2.2 系统流程分析 2.2.1 数据流程 2.2.2 业务流程 2.3 系统功能分析 2.3.1 功能性…

Android 11 访问/mnt/media_rw下的U盘文件,使用File.listFiles()方法列出U盘文件,始终错误返回null,已解决。

背景介绍:我做的launcher有一个功能,就是检测U盘中是否有update.zip文件,有的话就拉起升级程序,没有就弹窗提示没有。使用File.listFiles()列出/mnt/media_rw下的U盘文件列表,明明U盘有文件,代码逻辑也没错…

【JVM】类加载过程|双亲委派模型

目录 四、类加载过程 1.类加载过程 2.双亲委派模型(经典面试题) 什么是双亲委派模型 双亲委派模型的优点 破坏双亲委派模型 四、类加载过程 1.类加载过程 咱们写的java代码,是.java文件(硬盘),一个j…

手动用梯度下降法和随机梯度下降法实现一元线性回归

手动用梯度下降法实现一元线性回归 原文链接:https://www.cnblogs.com/qimoxuan/p/18407823 实验目的 本次实验旨在通过手动实现梯度下降法和随机梯度下降法来解决一元线性回归问题。具体目标包括: 生成训练数据集,并使用matplotlib进行可视化。设计一个`LinearModel`类来…