Redis的事务

news/2024/4/25 0:34:55/

Redis的事务

1. 是什么?

Redis事务可以一次执行多个命令,本质是一组命令的集合

一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞

2. 能干嘛

一个队列中,一次性、顺序性、排他性地执行一些列命令

3. Redis事务 VS MySQL事务

在这里插入图片描述

4. Redis事务命令

在这里插入图片描述

multi//开启事务
set k1 v1
set k2 v2 
set k3 v3
exex//提交事务
discaer//放弃事务

5. 事务操作异常处理

全体连坐

当事务操作开启时,执行的redis命令有语法异常,那么整个事务都会执行失败

冤头债主

当语句没有语法错误,但当执行时发现是错误的语句,那么错误语句之前的都会正常执行,之后的也会正常执行

6. watch监控

redis使用watch来提供乐观锁锁定,类似于CAS

乐观锁: 每次去拿数据的时候都认为别人不会修改,所以不会上锁,但在更新的时候会判断一下此期间别人有没有更新这个数据

乐观锁策略: 提交版本必须大于记录当前版本才能执行更新

redis中的策略:

被监控的key如果在事务未被提交期间被修改,那么该条事务中的所有命令都不会被执行,并返回Null

在这里插入图片描述

7. unwatch

UNWATCH是Redis中的一个命令,用于取消当前客户端已经监视的所有key。如果一个客户端正在执行一个带有WATCH命令的事务,那么这个客户端可以在事务执行之前使用UNWATCH命令来取消对所有key的监视。这样,在事务执行期间,即使其他客户端修改了被监视的key,Redis也不会回滚当前客户端的事务。

总的来说,UNWATCH命令可以帮助开发者避免因为文件被修改而无法成功执行事务的情况,并且如果客户端需要在执行事务之前取消对一些WATCH的key进行监控,那么使用UNWATCH命令可以很方便地达到这个目的。

消对一些WATCH的key进行监控,那么使用UNWATCH命令可以很方便地达到这个目的。


http://www.ppmy.cn/news/48214.html

相关文章

FTP上传下载

这里FTP上传使用的是: commons-net:commons-net:3.6 首先登录 FTPClient client new FTPClient();// 连接FPT服务器,设置IP及端口client.connect(host地址, port端口);client.login(userName用户名, passWord密码);client.changeWorkingDirectory(filePath文件夹…

Django | 一文完美解决admin增加新用户只有用户名密码和确认密码的问题

文章目录 如图所示,下面给出解决方案: 如果您使用 使用 Django 默认的后台管理界面添加用户时,只看到了三个字段(通常是 username、password和 repassword),那么可以通过定义 add_fieldsets 属性来增加更多…

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是…

我把Solon打包成了native image,速度快的惊人

我刚开始对 Solon 感兴趣的原因,就是启动快、包体积小,用了一段时间之后,发现 Solon 使用 GraalVM native iamge 打包有一些问题,我把问题发到 Solon 用户群里,作者告诉我 Solon 的原生编译还 beat 阶段,只…

内存管理、内存映射、mmap

内存管理 MMU:Memory Management Unit,内存管理单元,CPU中独立硬件,负责处理CPU的内存访问请求。虚拟地址到物理地址的转换(即虚拟内存管理)。 物理内存:真实存在的插在主板内存槽上的内存条&a…

C# 类库打包推送到nuget

步骤1:注册nuget 账号,可以使用outlook邮箱进行注册 步骤2:建立 apikey 名字自己起,Glob Pattern 填入“*” 步骤3:把程序打包,打包很简单右键vs2022 打包就好 但是注意*.csproj 文件修改,修改目的是为了…

python 操作CAD 二次开发 相关函数

import win32com.client as win32#输出dwg文件 from pyautocad import Autocad#输出dwg文件 import numpy as np#输出dwg文件 import pywin32 #输出dxf文件 import ezdxf #输出dxf文件 #打开CAD AutoCAD.Application.18 为 2010版本 #AutoCAD.Application.19 为 2014版本 #Au…

Python 使用pipreqs命令生成 `requirements.txt`报错

Python 使用pipreqs命令生成 requirements.txt报错:Fatal error in launcher: Unable to create process using ‘“E:\Anaconda\python.exe” “D:\Anaconda\Scripts\pipreqs.exe” ./ --encodingutf-8’: ??? 问题描述—Python 使用pipreqs命令生成 requireme…

MySQL_第09章_子查询

第09章_子查询 讲师:尚硅谷 - 宋红康(江湖人称:康师傅) 官网: http://www.atguigu.com 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。 SQL 中子查询的使用大大…

怎么设置动态壁纸?这样做就行!

案例:怎么设置动态壁纸 【朋友们,我的壁纸一直都是静态的,最近感觉有点审美疲劳了,想换些好看的动态壁纸,有朋友知道应该如何设置动态壁纸吗?】 经常使用电脑的朋友可能会觉得一直用同一张壁纸会感觉审美…

RabbitMQ之Work Queues

​ 工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进 程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起…

IEEE14节点系统在如短路分析,潮流研究,互连电网中的研究(Simulink)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥 🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 …

Android/SELinux 添加 AVC 权限

authordaisy.skye的博客_CSDN博客-Qt,嵌入式,Linux领域博主 增加属性配置 在文件路径下增加了如下代码用于gc02m1的兼容倒置前置摄像头成像配置 //daisy if(MSM8909_SENSORS){ property_set("ro.camera.gc02m1", "1"); } /home/scooper/works…

自动化测试工程师需要具备什么技能?

如果是初入门的学习者,不建议拿一本书从头学,很可能会被里边一些专业术语和不常用的技术带偏,不论在公司还是在其他岗位上自学测试,都可以用自己搭建好的项目来练手(如果在公司有现成的项目更好)&#xff0…

一文看懂数据云平台的“可观测性”技术实践

背景 这是一家大型制造集团。为监控及预测工厂设备运行情况,IT部门在数据云平台DataSimba上按天执行数据作业,每24小时对工厂设备的日志数据进行分析,发现能对业务起到很好的辅助作用,效果不错。 “要不升级为每1个小时跑一次&am…

【无标题】docker安装jenkins安装流程(二)

配置Publish Over SSH JENKINS_URL/job/goods/build?tokenTOKEN_NAME http://xxxxx:8001/job/goods/job/goods/build?tokenxql1232.提交合并代码触发自动构建 http://xxxxx:8001/buildByToken/build?jobgoods&tokenxql123http://xxxxx:8001/buildByToken/build?jobgood…

ASIC-WORLD Verilog(3)第一个Verilog代码

写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的Verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&#xf…

【蓝桥杯省赛真题38】Scratch流星坠落 少儿编程scratch编程蓝桥杯省赛比赛真题讲解

目录 scratch流星坠落 一、题目要求 编程实现 二、案例分析 1、角色分析

SAS学习第3章:试验数据处理的心决

sas中数据的输入格式一般分为2种,一种是直接输入,另一种是循环输入。input 后跟几个变量名,数据卡cards就要据此逐次处理,且一定是倍数关系。 1.直接输入在自变量及数据较少的情况下较好使用。 例: 甲、乙、丙三个奶…

第七讲 分支结构和循环结构的应用

通过前面两节课的学习,大家对 Python 中的分支结构和循环结构已经有了初步的认知。分支结构和循环结构是构造程序逻辑的基础,它们的重要性不言而喻,但是对于初学者来说这也是比较困难的部分。很多人对分支结构和循环结构的语法是能够理解的&a…