Redis事务操作

文章目录

    • 1. Redis事务常见命令
    • 2. 具体案例

1. Redis事务常见命令

名称描述
DISCARD取消事务,放弃执行事务块内的所有命令
EXEC执行所有事务块内的命令
MULTI表示一个事务块的开始
UNWATCH取消WATCH命令对所有keyd监控
WATCH eye [key…]监视一个或多个kye,如果在事务执行之前(或这些)key被其它命令所改的,那么事务将会被打断

2. 具体案例

redis会将一次事务的所有命令放在一个队列中,一次性

redis没个命令都是原子的,如果多个命令组合到一起想要一起执行就需要事务了。

  • 案例一:开启一个事务

在这里插入图片描述

  • 案例二:放弃一个事务

在这里插入图片描述

  • 全体连坐

如果事务中一个命令有错误,整个事务失败

在这里插入图片描述

  • 冤有头债有主

针对运行以后的异常,错误的命令执行失败,成功的就执行成功,因为与传统的数据库事务不一样,redis是不支持回滚的

在这里插入图片描述

  • watch监控

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

乐观锁:每次去拿谁的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断胰腺癌在此期间有没有去更新这个数据。(乐观锁策略:提交版本必须大于记录当前的版本才能更新)
悲观锁:每次去拿数据的时候都认为别人会修改,所以每次拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁

在这里插入图片描述
在这里插入图片描述
因为第二个客户端在事务还没有执行完之前就修改类balance的数据,导致balance的版本升高,所以事务就会失效,UNWATCH就可以放弃监控(放弃加锁)

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

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

相关文章

高手总结17个画好原理图的技巧

欧若奇科技 专业电路设计,PCB复制,原理图反推,电子产品优化设计等 不光是代码有可读性的说法,原理图也有。很多时候原理图不仅仅是给自己看的,也会给其它人看,如果可读性差,会带来一系列沟通问…

零基础也可以探索 PyTorch 中的上采样与下采样技术

目录 torch.nn子模块Vision Layers详解 nn.PixelShuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.PixelUnshuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.Upsample 用法与用途 使用技巧 注意事项 参数 示例代码 nn.UpsamplingNearest2d …

DDNS-GO配置使用教程

环境:openwrt 下载地址:Releases jeessy2/ddns-go GitHub 下载 ssh至openwrt根目录,根据你的处理器选择要下载的版本,我是路由器,选择的是 ddns-go_5.7.1_linux_arm64.tar.gz wget github链接 安装 tar -zxvf…

svn - 配置账号、自动更新、配置log权限

概述 虽然已经有很多朋友的公司都不使用svn了,但也有很多朋友的公司在使用,统一整理了svn的配置账号、自动更新、配置log权限,常用的操作知识。 找到Svn的位置和运行的项目 找到运行中的svn进程PID,/var/svn/,这个就是svn服务启…

计算机网络-2019期末考试解析

【前言】 从内容上看比较像计算机网络课程了,先做了。 一.填空选择题(共 20 分,每空 1 分) 1 、双绞线由两根相互绝缘的、绞合成均匀的螺纹状的导线组成,下列关于双绞线的叙述,不正确的是___ __…

go语言的http post推送

go语言的网络功能比较强大,使用go语言实现http 协议的推送非常简单,这里做了个简单的post推送示例。 代码 package mainimport ("bytes""fmt""io/ioutil""crypto/tls""net/http""flag" …

[modern c++] std::binder 的返回值用 std::function 保存

前言: 当使用 std::function 保存 std::binder 的返回值时,需要注意所有被 placeholder 占用的参数位置都不应该再出现再 std::function 的模板列表里。 参考: c - std::function and std::bind return value - Stack Overflow Demo&#x…

canvas绘制流动的蚂蚁线(图文示例)

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

sqlilabs第五十一五十二关

Less-51(GET - Error based - ORDER BY CLAUSE-String- Stacked injection) 手工注入 源码 单引号闭合用注释(没有后续输出只能堆叠注入) 自动注入 和上一关一样 Less-52(GET - Bind based - ORDER BY CLAUSE-numeric- Stacked injection) 手工注入 数字类型 不用注释直接…

gcc/g++工具详解

目录 一、安装gcc/g 二、背景知识 三、相关选项 四、gcc如何工作 1.预处理 2.编译 3.汇编 4.链接 5.函数库的概念 6.动静态库 一、安装gcc/g gcc/g -v : 用来查看当前你使用的gcc/g版本 因为我的gcc/g是升级过的所以版本更高,如果你用的是centos7.6的话…

干货|Google ads谷歌广告投放详细步骤与技巧

对于跨境电商、独立站运营的卖家来说,谷歌广告投放是必备的流量拓展来源,但是在投入运营之前,你需要完整了解谷歌广告投放详细步骤,以为你丝滑地进行有效投放做好基础,下面为大家整理具体的谷歌投放技巧与步骤&#xf…

BIOS知识枝桠——认识主板

文章目录 前言一、主要构成二、I/O区域1.I/O区域2.CPU区域与内存区域3.拓展区域4.南桥区域与外围接口 其他 前言 主板由电路板铜线芯片针脚数千个精密的元器件组合构成,是把显卡、内存、CPU等核心硬件串在一起的骨架,在计算机中发挥着重要的作用。文章以…

箭头函数与普通函数的差异

一、箭头函数中的this指向 箭头函数的this指向通常有两种情况 如果箭头函数处在一个普通函数之中,那么他的this指向与包裹他的外层函数的this指向一致。其他情况下箭头函数中的this都指向window let obj {fn:function(){console.log(我是普通函数,this obj) …

[渗透测试学习] Surveillance -HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描端口 nmap -sV -sC -v -p- --min-rate 1000 10.10.11.245扫出来两个端口,其中80端口有http服务并且重定向到surveillance.htb 那么我们添加下域名然后访问80端口,发现是企业网站尝试扫描子域名和目录无果后,用Wappalyzer插…

vue3中的hook公共函数封装及运用

vue3 中的 hooks 就是函数的一种写法,就是将文件的一些单独功能的js代码进行抽离出来,放到单独的js文件中,或者说是一些可以复用的公共方法/功能 使用Vue3的组合API封装的可复用的功能函数自定义hook的作用类似于vue2中的mixin技术自定义Hook…

NetCore部署微服务(三)

接上文,服务端部署完成之后,同样我们也需要修改一下客户端代码 Blocking Queries 1.1 服务发现 在客户端代码中使用Nuget安装consul包 修改配置文件,我们首先需要把consul的请求地址配置在配置文件中 修改control方法 using Consul; usin…

复选框QCheckBox和分组框QGroupBox

1. 复选框:QCheckBox 实例化 //实例化 // QCheckBox* checkBox new QCheckBox("是否同意该条款",this);QCheckBox* checkBox new QCheckBox(this);1.1 代码实现 1.1.1 复选框的基本函数 复选框选中状态的参数 Qt::Unchecked //未选中状态 Qt::Part…

学习C指针

指针基本介绍 计算机中的每个内存都有地址 整型分配4字节,字符分配1字节 ,浮点数分配4字节 指针是一个变量,它存放着另外一个变量的地址 int a; int *p; p &a;// a 5; printf(p) //get a address print &a //get a address …

chatgpt免费使用的网站

前言 如果您认为本文对你有帮助,希望可以点赞收藏!感谢您的支持 下面我为你推荐我自己在用的gpt类工具,帮你在工作学习生活上解决一些大小问题 🎉智能GPT 地址: https://meet.adminjs.net 在他的详情中有详细的使用…

半监督学习 - 自训练(Self-training)

什么是机器学习 半监督学习中的自训练(Self-training)是一种利用已标记数据和未标记数据进行模型训练的方法。以下是自训练的详细教程: 步骤一:准备数据集 标记数据集: 收集和标记一小部分数据,用于有监…