Redis数据库(四):Redis数据库事务

news2025/1/11 8:10:55

        经过前面的学习,我们就对于Redis数据库可以进行基本的操作,从这一节开始,我们就正式学习Redis数据库的相关知识,为以后工作打下坚实的基础。

目录

一、事务(了解)

1.1 Redis的事务概念  

1.2 Redis事务机制命令

1.2.1 正常执行事务

1.2.2 放弃事务

1.2.3 编译型异常

1.2.4 执行时异常

二、Redis的乐观锁 Watch(面试)

2.1 悲观锁(Pessimistic Lock)

2.2  乐观锁(Optimistic Lock)


一、事务(了解)

1.1 Redis的事务概念  

         事务的本质: 一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行! 一次性,顺序性,排他性,执行一系列的命令! MySQL中的事务,要么同时成功,要么同时失败,必须保证原子性! Redis中的事务中的命令按顺序执行,但 Redis 不提供回滚机制。如果事务中的某个命令失败,其他命令仍会继续执行。Redis单条命令是保证原子性的,所有事务内的命令要么全部执行,要么全部不执行,但不保证部分命令失败时的回滚。事务执行时,所有命令被一次性发送到服务器, Redis事务是没有隔离级别的概念。

1.2 Redis事务机制命令

 Redis的事务使用过程:

  1.  开启事务:multi 
  2.  命令入队 ...
  3.  执行事务: exec

所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行!

1.2.1 正常执行事务

1.2.2 放弃事务

1.2.3 编译型异常

命令有错, 事务中所有的命令都不会被执行

1.2.4 执行时异常

如果事务队列中存在语法性错误,执行命令的时候,错误命令抛出异常,其他命令可以正常执行,

二、Redis的乐观锁 Watch(面试)

       这只是解决问题的一种思路。

2.1 悲观锁(Pessimistic Lock)

       悲观锁假设并发冲突会频繁发生,因此在事务开始时就加锁,以防止其他客户端同时修改数据。悲观锁会阻塞其他客户端对数据的访问,直到事务结束。很悲观,认为什么时候都会出问题,无论做什么都会加锁!但是影响效率!

2.2  乐观锁(Optimistic Lock)

        乐观锁假设并发冲突不会频繁发生,因此不会在事务开始时加锁,而是在提交事务时检查数据是否被修改。如果数据在事务期间被其他客户端修改,事务将失败并需要重试。很乐观,认为什么时候都不会出问题,所以不会加锁!更新数据时去判断一下,在此期间是否有人 修改过这个数据!MySQL的version的使用:先获取version,更新数据时比较version,看version 是否被修改

Redis的监视测试:

        watch监测的对象在我修改时,别人也修改了,此次操作就会失败。

1、正常执行成功!

2、多线程修改值,使用watch可以当做Redis的乐观锁操作!在命令执行之前,第二个客户端执行了修改了a的值,就会导致事务执行失败

至此,Redis数据库第四节就介绍完毕,这一节内容作个简单了解,更多精彩内容见后期博客!感谢阅读,如果喜欢,点赞加关注!

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

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

相关文章

黑马程序员——Spring框架——day09——linux初级

目录: 前言 什么是Linux?为什么要学Linux 企业用人要求个人发展需要学完Linux能干什么 1).环境搭建2).常用命令3).安装软件4).项目部署小结2.Linux简介 主流操作系统Linux发展历史Linux系统版本Linux安装 安装方式介绍安装VMware安装Linux网卡设置安装S…

我用过最好的GPT,NewspaceGPT使用心得

记住网址:https://newspace.ai0.cn 前言 只要你能表达明白,NewspaceGPT就不会让你失望。 Gpt4o预测GPT5 IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&…

Beyond Compare不能比较Selinux te文件的解决方案

Beyond Compare不能比较Selinux te文件的解决方案 Beyond Compare默认不能比较te文件,现象如下: 问题原因: 是Beyond Compare将*.te文件识别为一个可执行文件,但是*.te不是一个可执行文件,所以打不开;即使…

微信群聊不见了?掌握这4个技巧轻松找回,简直太爽了

微信,作为国内最受欢迎的社交应用之一,其群聊功能极大地方便了人们的工作与生活。然而,随着加入的群聊数量日益增多,如何快速找到并管理这些群聊成为了一个难题。 幸运的是,微信提供了一些实用的技巧,帮助…

Vue原生写全选反选框

效果 场景:Vue全选框在头部,子框在v-for循环内部。 实现:点击全选框,所有子项选中,再次点击取消;子项全选中,全选框自动勾选,子项并未全选,全选框不勾选;已选…

2024全国大学生信息安全竞赛(ciscn)半决赛(华中赛区)Pwn题解

简介 前段时间赛前准备把ciscn东北赛区、华南赛区、西南赛区半决赛的题都复现完了。 可惜遇到了华东北赛区的离谱平台和离谱pwn出题人: 假的awdp(直接传🐎到靶机,然后连上去cat /flag.txt即可)题型分布不合理&#…

fastadmin框架修改前端时间戳格式的时区

一、上传文件 将 moment-timezone-with-data.js 和 moment-timezone-with-data.min.js 文件上传到项目的 \public\assets\libs\moment\ 文件夹中。 二、配置中引入文件 在 \public\assets\js\require-backend.js 文件中增加所引入文件的配置: moment-timezone-with-data: …

【嵌入式Linux】i.MX6ULL GPIO 中断管理与配置函数

文章目录 GPIO 中断管理与配置函数1 GPIO中断服务号2 GPIO中断相关的寄存器配置3 具体代码分析3.1 数据结构和类型定义3.2 gpio_int_enable3.3 gpio_int_disable3.4 gpio_int_flagClear3.5 gpio_int_init3.6 gpio_init 4 完整代码 本文章结合了正点原子的 i.mx6u嵌入式Linux开发…

49、基于归一化感知器的输入向量分类(matlab)

1、基于归一化感知器的输入向量分类的原理及流程 归一化感知器是一种分类算法,其原理基于感知器算法,但是在输入向量上进行了归一化处理,以提高算法的性能和稳定性。 流程如下: 输入向量归一化:对每个输入向量进行归…

ChatGPT只是开胃菜,AIGC风口真的来了!

去年OpenAI发布的ChatGPT在全球疯狂刷屏成为一款现象级产品,并成功出圈受到IT、新闻媒体、学术研究、教育等领域的广泛好评和应用。甚至有一位美国学生用ChatGPT 写论文拿下全班最高分,受到了全球媒体的热议。 比尔盖茨曾在今年“Reddit AMA大会”表示&…

Mamba 模型

建议观看讲解视频:AI大讲堂:革了Transformer的小命?专业拆解【Mamba模型】_哔哩哔哩_bilibili 1. 论文基本信息 2. 创新点 选择性 SSM,和扩展 Mamba 架构,是具有关键属性的完全循环模型,这使得它们适合作…

武汉星起航:跨境电商直播带货热,推动中国出口销售新飞跃

随着数字化时代的到来,跨境电商领域正经历着前所未有的变革。中国商务部最近发布的数据显示,2023年中国跨境电商进出口总额达到2.38万亿元,同比增长15.6%,其中出口更是高达1.83万亿元,同比增长19.6%。这一亮眼成绩的背…

电脑开不了机怎么办?无响应就试试这3个方法,快速解决黑屏

当电脑突然变得沉默寡言,没有任何响应,屏幕只剩下一片漆黑时,不仅会打断我们的计划,还可能让我们感到无助和焦虑。电脑开不了机怎么办呢?如果你正面临这样的困境,别担心,本文将引导你通过三个简…

一文讲解:如何理解数字化?数字化的三大本质!

在当今时代,一些企业对数字化概念与本质进行了专门的诠释,部分认为数字化是基于大数据、云计算、物联网、5G等数字技术来实现企业的管理创新,且这一进程的前提是建立在信息化基础之上。然而,也有一些专家持有不同观点,…

基于weixin小程序新生报到系统的设计

管理员账户功能包括:系统首页,个人中心,学生管理,班级信息管理,师资力量管理,宿舍信息管理,宿舍安排管理,签到信息管理,论坛管理 小程序功能包括:系统首页&a…

用IP申请SSL证书需要注意什么?

用IP地址申请SSL证书需要选择支持IP地址验证的证书,验证所有权,正确安装和配置证书等。在互联网中,确保数据传输的安全性是至关重要的,使用SSL证书能够对数据进行加密处理,防止信息被窃取或篡改。使用IP地址申请SSL证书…

使用 Vanna 生成准确的 SQL 查询:工作原理和性能分析

Vanna工作原理 从本质上讲,Vanna 是一个 Python 包,它使用检索增强功能来帮助您使用 LLM 为数据库生成准确的 SQL 查询。 Vanna 的工作分为两个简单的步骤 - 在您的数据上训练 RAG“模型”,然后提出问题,这些问题将返回可设置为在您的数据库上自动运行的 SQL 查询。 vn.t…

如何安装Linux-centOS虚拟机

一、创建虚拟机 二、安装虚拟机 开启虚拟机,将光标移入虚拟机中,点击键盘上的上下键,移动到第一行,按下enter键,如图: 等待进入到如下图,选择中文 设置root密码

计算机毕业设计Thinkphp/Laravel校园体育器材管理系统

校园体育器材管理系统在流畅性,续航能力,等方方面面都有着很大的优势。这就意味着校园体育器材管理系统的设计可以比其他系统更为出色的能力,可以更高效的完成最新的体育器材、器材借用、器材归还、器材损坏、采购入库、器材报废、维修记录等…

项目实施方案(实际项目原件doc参考)

软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取:(本文末个人名片也可直接获取) 软件产品,特别是行业解决方案软件产品不同于一…