为什么Redis的执行是原子性的,怎么保证原子性的
2025-10-20 15:47 tlnshuju 阅读(0) 评论(0) 收藏 举报Redis 的操作具有原子性,指的是 Redis 中单个命令的执行是不可分割的:要么完全执行,要么完全不执行,不会出现部分执行的中间状态。这一特性对于保证数据一致性至关重要(例如并发场景下的计数器、库存扣减等)。
一、Redis 操作原子性的本质原因
Redis 操作的原子性源于其单线程执行模型:
- Redis 的核心命令执行模块是单线程的,同一时刻只会处理一个命令,不会有多个命令并行执行。
- 所有客户端发送的命令会被放入一个队列中,由主线程按顺序逐个执行。因此,任何一个命令在执行过程中不会被其他命令打断,自然具备原子性。
例如,两个客户端同时执行 INCR counter
命令(对计数器自增 1),Redis 会先执行完第一个 INCR
,再执行第二个 INCR
,不会出现 “两个命令同时读取旧值并加 1,最终只加 1 次” 的情况。
二、Redis 如何保证艰难操作的原子性?
单线程模型只能保证单个命令的原子性。如果业务需要多个命令的组合操作(如 “先判断值是否存在,再修改”),Redis 提供了以下机制保证原子性:
1. 事务(Transaction)
Redis 的事务通过 MULTI
、EXEC
、DISCARD
等命令实现,允许将多个命令打包成一个原子操作:
- 执行流程:
- 用
MULTI
开启事务,后续命令会被放入队列(不立即执行)。 - 用
EXEC
提交事务,Redis 会按顺序执行队列中的所有命令,期间不会插入其他命令。 - 用
DISCARD
取消事务,清空命令队列。
- 用
- 原子性保证:事务中的所有命令要么全部执行,要么全部不执行(若在
EXEC
前 Redis 崩溃,事务不会执行;若EXEC
后崩溃,已执行的命令无法回滚)。 - 局限性:不支持回滚(Rollback),若事务中某命令执行失败,后续命令仍会继续执行。
2. Lua 脚本
Redis 支持通过 Lua 脚本执行多个命令,脚本内的所有运行会被视为一个原子操作:
- 原理:Lua 脚本提交到 Redis 后,会被单线程一次性执行完毕,执行过程中不会被其他命令打断。
- 优势:
- 比事务更强大,支持条件判断(如
if-else
)和循环,可实现复杂逻辑。 - 减少网络往返(一次脚本调用替代多次命令调用),提升性能。
- 比事务更强大,支持条件判断(如
- 示例:实现 “若 key 存在则自增,否则设置初始值” 的原子操作:
if redis.call('exists', 'counter') == 1 thenreturn redis.call('incr', 'counter') elsereturn redis.call('set', 'counter', 1) end
3. 分布式锁(针对多实例场景)
当 Redis 部署为集群(多实例)时,单实例的原子性机制不足以保证跨实例操作的一致性,此时需借助分布式锁:
- 原理:通过
SET key value NX PX timeout
命令(仅当 key 不存在时设置,并指定过期时间)获取锁,操作完成后释放锁,确保同一时刻只有一个客户端执行临界区代码。 - 注意:需处理锁超时、释放别人的锁等异常情况,通常结合 Lua 脚本保证解锁的原子性。
三、总结:Redis 原子性的保证机制
- 单线程模型:确保单个命令的执行不会被打断,是原子性的基础。
- 事务:将多个命令打包,按顺序原子执行(不支撑回滚)。
- Lua 脚本:复杂逻辑的原子操作,支持条件判断,执行过程不可中断。
- 分布式锁:在集群环境下,通过加锁机制保证跨实例操作的原子性。
这些机制使 Redis 能够在高并发场景下保证数据一致性,满足缓存、计数器、分布式锁等核心业务需求
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941283.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
逆向 | 逃离鸭科夫 frida hook 锁血
逆向 | 逃离鸭科夫锁血hook
赶时间,随便用frida搓了一个,原理是先通过hook找血量地址,再导出函数进行使用。
python端:
from __future__ import print_function # 这里__future__的目的是引入新版本特性
import…
zedboard + AD-FMCOMMS3-EBZ AD9361 (六)gnuradio
zedboard + AD-FMCOMMS3-EBZ AD9361 (六)gnuradio1、官网:GNU Radio2、简介:What Is GNU Radio - GNU Radio3、帮助文档:GNU Radio
CF2109D D/D/D
可以重复走就说明这题是一个乱搞题。
显然,花一些步数走到 \(i\) 后,剩余的步数可以来回跳,分类讨论一下奇偶性即可。
记录一个 \(f_{x, 0/1}\) 表示从 \(1\) 到 \(x\),奇数/偶数步的最短路分别是多少。
分类讨论有…
SpringBoot使用TraceId日志链路追踪
业务需求保证一次服务调用,在业务中可以一次追查到本次服务调用涉及的本地服务方法,第三方服务接口。实现日志的链路追踪。保证日志的高查找性。实现步骤1、pom.xml 依赖<dependencies><dependency><…
马尔可夫决策过程的理解
核心性质:马尔可夫性:一个随机过程在给定现在状态和所有历史状态的情况下,其未来状态的条件概率分布仅依赖于当前状态。即未来的转移和过去是独立的,只取决于现在。马尔可夫决策过程 是顺序决策问题的数学模型,用…
2025年试验机厂家权威推荐榜单:拉力试验机,江都试验机,管材环刚度试验机,电子万能试验机,橡胶试验机,压缩试验机及静刚度试验机精选
2025年试验机厂家权威推荐榜单:拉力试验机,江都试验机,管材环刚度试验机,电子万能试验机,橡胶试验机,压缩试验机及静刚度试验机精选
在材料科学与工业制造领域,试验机作为质量控制与研发创新的关键设备,其性能…
2025 年球墨铸铁管厂家最新推荐榜:涵盖 K9/C 级供水等多规格,优质厂家选购指南 k9级球墨铸铁管/c25级球墨铸铁管/c30球墨铸铁管/c级球墨铸铁管厂家推荐
引言
在城市给排水、跨区域输水等重大基础设施建设中,球墨铸铁管的质量直接关系到工程安全与使用寿命。当前市场品牌繁杂,既有技术领先的老牌企业,也有快速崛起的新兴力量,部分产品存在壁厚不均、防腐性能不达标等…
Cypress 插件实战:让你的测试不再“偶尔掉链子”
关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集
对于测试开发来说,最头疼的莫过于 flaky tests——同一条测试,有时候过,有时候失败,还没规律。今天我们就聊聊如何用 自定义 Cypress 插…
2025年掘进机/综掘机厂家权威推荐榜:专业制造与技术实力深度解析,高效掘进设备优选指南
2025年掘进机/综掘机厂家权威推荐榜:专业制造与技术实力深度解析,高效掘进设备优选指南
在矿山开采和隧道工程建设领域,掘进机和综掘机作为核心装备,其性能与可靠性直接影响工程效率与安全。随着技术进步和市场需求…
洛谷P2474 [SCOI2008] 天平 题解
思路学习的这一篇
step1
首先我们设 \(mn_{i,j}\)为砝码 \(i\) -砝码 \(j\) 的最小值(下文以\(a_i\)和\(a_j\)代替)。
\(mx_{i,j}\)为\(a_i-a_j\)的最大值。
当设\(a_i\)和\(a_j\)的关系为\(g_{i,j}\)。
当\(g_{i,j}\)…
Telnet发送邮件
Telnet发送邮件Telnet mail.yy.com 25EHLO domain.com
MAIL FROM:<your-email@example.com>
RCPT TO:<recipient@example.com>DATA #开始输入邮件主题和正文
Subject: Test EmailThis is a test email.
.…
一天一款实用的AI工具,第8期,AI转素描风格
一键将图片转成手绘素描的效果,呈现线条勾勒的艺术质感。工具介绍
在这个充满色彩的世界里,我们有时需要褪去喧嚣,用最本质的线条,讲述最深的故事。
无需画板与铅笔,也不必掌握绘画技巧,【AI转素描风格】工具能够…
2025年预应力张拉设备厂家推荐排行榜,千斤顶,预应力千斤顶,预应力张拉千斤顶,预应力张拉机,锚具,预应力锚具,桥梁施工锚具公司精选
2025年预应力张拉设备厂家推荐排行榜,千斤顶,预应力千斤顶,预应力张拉千斤顶,预应力张拉机,锚具,预应力锚具,桥梁施工锚具公司精选
行业背景与发展趋势
预应力张拉技术作为现代工程建设中的核心技术之一,在桥梁…
完整教程:【C++】string类
完整教程:【C++】string类pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …
2025年农机带厂家权威推荐榜:旋耕机带、收割机带、拖拉机带,耐磨耐用传动带源头厂家精选
2025年农机带厂家权威推荐榜:旋耕机带、收割机带、拖拉机带,耐磨耐用传动带源头厂家精选
随着农业机械化水平的持续提升,农机传动带作为关键零部件,其性能直接影响农业机械的工作效率和可靠性。在旋耕、收割、耕作…
2025年实验室/手术室净化工程厂家推荐排行榜:涵盖无尘车间装修、洁净室建设、医院净化工程等全方位解决方案精选
2025年实验室/手术室净化工程厂家推荐排行榜:涵盖无尘车间装修、洁净室建设、医院净化工程等全方位解决方案精选
在当今科技飞速发展的时代,实验室净化、手术室净化、无尘车间建设等洁净环境工程已成为医疗健康、生物…
2025 石家庄全屋定制工厂推荐:河北森佰特木业,莫兰迪色系/工业风/意式/意式极简/中古风/侘寂风/现代简约/北欧风/奶油胡桃色全屋定制等风格任你选
随着居民生活品质提升、家居审美多元化及个性化居住需求增加,全屋定制已从高端家居消费选择逐步普及至普通家庭,覆盖新中式、意式、现代简约等多种风格,2025 年市场规模预计持续扩大。但市场增长也带来厂商设计能力…
详细介绍:网络安全防御指南:全方位抵御暴力破解攻击
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
【ACM独立出版|EI稳定】第二届云计算与大数据国际学术会议(ICCBD 2025)
ICCBD 2025旨在深入分析云计算与大数据技术的最新发展趋势,探讨其在经济社会数字化进程中的重要作用,以及面临的挑战与机遇。会议为从事研究的专家、学者、工程师和技术人员提供一个国际平台,分享科研成果和尖端技术…
机器学习周报十五 - 教程
机器学习周报十五 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…