做网站的集团/武汉seo哪家好

做网站的集团,武汉seo哪家好,做市场调查的网站免费,wordpress 截断文章目录 是什么能干嘛Redis 事务 VS 数据库事务怎么玩小总结 是什么 首先回想一下什么是数据库的事务?数据库事务是指作为单个逻辑单元执行的一系列操作,具备以下四个关键特性(ACID): 原子性(Atomicity&am…

文章目录

    • 是什么
    • 能干嘛
    • Redis 事务 VS 数据库事务
    • 怎么玩
    • 小总结

是什么

  • 首先回想一下什么是数据库的事务?数据库事务是指作为单个逻辑单元执行的一系列操作,具备以下四个关键特性(ACID):

    • 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不存在部分执行的情况。如果中途出错,已执行的操作会回滚,确保数据一致性。
    • 一致性(Consistency):事务执行前后,数据库必须保持一致性状态,即符合预定义的规则和约束。
    • 隔离性(Isolation):多个事务并发执行时,彼此互不干扰,每个事务都像是在独立运行。数据库通过锁机制或多版本控制来实现隔离性。
    • 持久性(Durability):事务一旦提交,其结果将永久保存在数据库中,即使系统故障也不会丢失。
  • 事务的状态:

    • 活动(Active):事务正在执行。
    • 部分提交(Partially Committed):操作执行完毕,但未最终提交。
    • 提交(Committed):事务成功完成,结果永久保存。
    • 失败(Failed):无法继续执行。
    • 中止(Aborted):事务回滚,数据库恢复到事务开始前的状态。
  • 官网:https://redis.io/docs/manual/transactions/

  • 可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞

在这里插入图片描述

能干嘛

  • 一个队列中,一次性、顺序性、排他性的执行一系列命令

Redis 事务 VS 数据库事务

对比详细解释
单独的隔离操作Redis的事务仅仅是保证事务里的操作会被连续独占的执行,redis命令执行是单线程架构,在执行完事务内所有指令前是不可能再去同时执行其他客户端的请求的
没有隔离级别的概念因为事务提交前任何指令都不会被实际执行,也就不存在”事务内的查询要看到事务里的更新,在事务外查询不能看到”这种问题了
不保证原子性Redis的事务不保证原子性(部分支持),也就是不保证所有指令同时成功或同时失败,只有决定是否开始执行全部指令的能力,没有执行到一半进行回滚的能力
排它性Redis会保证一个事务内的命令依次执行,而不会被其它命令插入

怎么玩

  • 官网 :https://redis.io/docs/manual/transactions/

在这里插入图片描述

  • 常用命令

在这里插入图片描述

  • case1:正常执行 MULTIEXEC
    在这里插入图片描述

  • case2:放弃事务 MULTIDISCARD在这里插入图片描述

  • case3:全体连坐,一个语法出错,全体连坐。如果任何一个命令语法有错,Redis 会直接返回错误,所有的命令都不会执行在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • case4:源头债主在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 注意和传统数据库事务的区别,不一定要么全部成功要么全部失败

  • case5:watch监控

    • Redis使用 Watch 来提供乐观锁定,类似于 CAS(Check-and-Set)
      1. 悲观锁:悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。
      2. 乐观锁:乐观锁(Optimistic Lock),顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。
        • 乐观锁策略:提交版本必须【大于】记录当前版本才能执行更新
        • 与悲观锁不同,乐观锁不会在操作前加锁,而是在提交修改时检查数据是否被其他客户端修改过。如果数据未被修改,则提交成功;否则,操作失败,客户端可以选择重试或放弃。
      3. CAS在这里插入图片描述
    • watch
      • 初始化 k1 和 balance 两个 key,先监控在开启 multi,保证两个 key 变动在同一个事务内在这里插入图片描述在这里插入图片描述

      • 有加塞篡改:watch 命令是一种乐观锁的实现,Redis 在修改的时候会检测数据是否被更改,如果被更改了,则执行失败在这里插入图片描述

    • unwatch在这里插入图片描述
  • 小结:

    • 一旦执行了 exec 之前加的监控锁都会被取消掉
    • 当客户端连接丢失的时候(比如退出链接),所有东西都会被取消监视

小总结

  • 开启:以 multi 开始一个事务
  • 入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面
  • 执行:有 exec 命令触发事务

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

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

相关文章

一周学会Flask3 Python Web开发-Jinja2模板继承和include标签使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 不管是开发网站还是后台管理系统,我们页面里多多少少有公共的模块。比如博客网站,就有公共的头部&…

用pyside6创建一个界面并实现一个小功能且能打包成问题记录

现在我们要开发一个程序,让用户输入一段文本包含:员工姓名、薪资、年龄。该程序可以把薪资在 2万 以上、以下的人员名单分别打印出来。 1用designer创建界面并生成UI文件; 2直接调用ui文件实现功能; from PySide6.QtWidgets im…

包子凑数——蓝桥杯真题Python

包子凑数 输入输出样例 示例 1 输入 2 4 5输出 6样例说明 凑不出的数目包括:1, 2, 3, 6, 7, 11。 示例 2 输入 2 4 6输出 INF样例说明 所有奇数都凑不出来,所以有无限多个 运行限制 最大运行时间:1s最大运行内存: 256M 最大公约数 最大公…

文档检索服务平台

文档检索服务平台是基于Elasticsearch的全文检索,包含数据采集、数据清洗、数据转换、数据检索等模块。 项目地址:Github、国内Gitee 演示地址:http://silianpan.cn/gdss/ 以下是演示角色和账号(密码同账号)&#xf…

关于Postman自动获取token

在使用postman测试联调接口时,可能每个接口都需要使用此接口生成的令牌做Authorization的Bearer Token验证,最直接的办法可能会是一步一步的点击,如下图: 在Authorization中去选择Bearer Token,然后将获取到的token粘贴…

清华大学DeepSeek文档下载,清华大学deepseek下载(完成版下载)

文章目录 前言一、清华大学DeepSeek使用手册下载二、清华大学DeepSeek使用手册思维导图 前言 这是一篇关于清华大学deepseek使用手册pdf的介绍性文章,主要介绍了DeepSeek的定义、功能、使用方法以及如何通过提示语设计优化AI性能。以下是对这些核心内容的简要概述&…

Linux:(3)

一:Linux和Linux互传(压缩包) scp:Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是…

Arcgis 实用制图技巧--如何制作“阴影”效果

今天给大家介绍arcgis中阴影效果的制作方法,操作很简单,在ArcMap当中使用制图表达和移动几何方式就可以轻松实现。 左侧地图的图形背景组织很差。右侧地图通过使用阴影效果突出了重点内容。今天,我将要介绍两种阴影效果的创建方法:第一,纯色阴影(single color);第二,渐变…

pandas如何在dataframe上再添加一个dataframe

在pandas中,通常将一个DataFrame与另一个DataFrame进行合并或连接操作,主要有concat函数、merge函数和join方法三种方式,以下是具体介绍: ### 使用concat函数 concat函数可以沿着指定轴将多个DataFrame连接在一起,默认…

YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合

概述 实时目标检测对于许多实际应用来说已经变得至关重要,而Ultralytics公司开发的YOLO(You Only Look Once,只看一次)系列一直是最先进的模型系列,在速度和准确性之间提供了稳健的平衡。注意力机制的低效阻碍了它们在…

OpenAI开放Deep Research权限,AI智能体大战升级,DeepSeek与Claude迎来新对决

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

鸿蒙5.0实战案例:基于RichEditor的评论编辑

往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录) ✏️ 鸿蒙(HarmonyOS)北向开发知识点记录~ ✏️ 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…

RIP-AV:使用上下文感知网络进行视网膜动脉/静脉分割的联合代表性实例预训练

文章目录 RIP-AV: Joint Representative Instance Pre-training with Context Aware Network for Retinal Artery/Vein Segmentation摘要方法实验结果 RIP-AV: Joint Representative Instance Pre-training with Context Aware Network for Retinal Artery/Vein Segmentation …

单片机总结【GPIO/TIM/IIC/SPI/UART】

一、GPIO 1、概念 通用输入输出口;开发者可以根据自己的需求将其配置为输入或输出模式,以实现与外部设备进行数据交互、控制外部设备等功能。简单来说,GPIO 就像是计算机或微控制器与外部世界沟通的 “桥梁”。 2、工作模式 工作模式性质特…

.gitignore 文件中添加忽略 .pdb 文件

我在项目的根目录下创建.gitignore文件。打开.gitignore文件并添加忽略.pdb文件的规则。如下: 已经在 .gitignore 文件中添加了忽略 .pdb 文件的规则,但是提交到 Git 仓库时仍然看到了 .pdb 文件,这通常意味着 .pdb 文件在 .gitignore 文件被…

半导体晶圆精控:ethercat转profient网关数据提升制造精度

数据采集系统通过网关连接离子注入机,精细控制半导体晶圆制造过程中的关键参数。 在半导体制造中,晶圆制造设备的精密控制是决定产品性能的关键因素。某半导体工厂采用耐达讯Profinet转EtherCAT协议网关NY-PN-ECATM,将其数据采集系统与离子注…

VSCode+PlatformIO报错 找不到头文件

如图示,找不到目标头文件 demo工程运行正常,考虑在src文件夹内开辟自己的代码,添加后没有找到 找了些资料,大概记录如下: 1、c_cpp_properties.json 内记录 头文件配置 .vscode 中,此文件是自动生成的&a…

ARM 处理器平台 eMMC Flash 存储磨损测试示例

By Toradex秦海 1). 简介 目前工业嵌入式 ARM 平台最常用的存储器件就是 eMMC Nand Flash 存储,而由于工业设备一般生命周期都比较长,eMMC 存储器件的磨损寿命对于整个设备来说至关重要,因此本文就基于 NXP i.MX8M Mini ARM 处理器平台演示…

uniapp 本地数据库多端适配实例(根据运行环境自动选择适配器)

项目有个需求,需要生成app和小程序,app支持离线数据库,如果当前没有网络提醒用户开启离线模式,所以就随便搞了下,具体的思路就是: 一个接口和多个实现类(类似后端的模板设计模式)&am…

AI探索笔记:浅谈人工智能算法分类

人工智能算法分类 这是一张经典的图片,基本概况了人工智能算法的现状。这张图片通过三个同心圆展示了人工智能、机器学习和深度学习之间的包含关系,其中人工智能是最广泛的范畴,机器学习是其子集,专注于数据驱动的算法改进&#…