当前位置: 首页 > article >正文

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

我的后端学习大纲

我的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.kler.cn/a/301574.html

相关文章:

  • 【Fargo】23:采集时间转rtp时间
  • GPU分布式通信技术-PCle、NVLink、NVSwitch深度解析
  • 推荐一个基于协程的C++(lua)游戏服务器
  • 要查看你的系统是 x64(64位)还是 x86(32位),可以按照以下步骤操作
  • git创建远程仓库,以gitee码云为例GitHub同理
  • dpdk tm eth event驱动协同完成收发包流程
  • ios免签H5
  • Docker Swarm 管理
  • 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(六):Blender烘培和UE5导入
  • 深入探讨MySQL联表查询可能导致的问题及应对策略
  • Linux运维_Bash脚本_源码编译Moby(Docker-CE)-20240803
  • 嵌入式鸿蒙系统开发语言与开发方法分析
  • Linux之MySQL主从复制
  • 组合模式composite
  • linux 操作系统下cp命令介绍及案例应用
  • Angular-Cli脚手架介绍、安装并搭建项目
  • Golang开发之路
  • 从 Data 到 Data + AI,必然之路还是盲目跟风?
  • vue3使用vscode开发遇到热更新问题(文件保存页面不实时更新)
  • 即插即用篇 | YOLOv8 引入并行的分块注意力 | 北京大学 2024 | 微小目标
  • 高级算法设计与分析 学习笔记4 二叉查找树
  • 单片机-STM32 看门狗(八)
  • 使用Ansible进行多云环境的自动化部署与管理
  • 第二期: 第四节, 裸机编程 LED 汇编代码。
  • TCP/IP模型成功与OSI模型失败的深层原因:技术、理念与市场化路径的比较
  • 【数据结构与算法 | 灵神题单 | 快慢指针(链表)篇】力扣876, 2095, 234