redis执行lua脚本的原子性和数据库原子性的区别

一、redis执行lua脚本的原子性和数据库原子性的区别

当我们想在redis的一个事物当中执行多个命令的时候呢,会选择使用lua脚本。Redis会将一个要执行的lua脚本封装成一个单独的事务,而脚本执行器在执行这个事务的过程中呢,如果有其他的客户端请求过来,redis会把它暂存起来,等脚本处理完以后,才会把暂存的请求恢复执行。这样就可以保证整个脚本是作为一个整体执行的,中间不会被其他的命令插入。但是,如果事务执行的过程中产生了错误,事务是不会回滚的,也不会影响后续的命令执行,也就是说,Redis会保证以原子方式执行lua脚本,但是不保证脚本中的所有的操作要么都执行,要么都回滚这件事儿。那也就意味着,Redis lua脚本的执行可以保证并发编程当中那个不可拆分,不可被中断的这个原则性,但是没有办法保证数据库ACID当中的那个要么都执行,要么都回滚的。

相关推荐
其实防守也摸鱼44 分钟前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚1 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔7251 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋1 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_2 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾2 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
IvorySQL3 小时前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql
逝水无殇3 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
罗政5 小时前
PDF 批量合并工具:本地 AI 自动排序、识别正文日期与合同编号
数据库·pdf·php
SelectDB5 小时前
宽表元数据膨胀怎么解?Doris Segment V3 对比 Parquet、Lance
大数据·数据库·数据分析