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

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

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

相关推荐
晚风_END9 小时前
Linux|操作系统|elasticdump的二进制方式部署
运维·服务器·开发语言·数据库·jenkins·数据库开发·数据库架构
devmoon9 小时前
Polkadot SDK 自定义 Pallet Benchmark 指南:生成并接入 Weight
开发语言·网络·数据库·web3·区块链·波卡
数据知道9 小时前
PostgreSQL 故障排查:紧急排查与 SQL 熔断处理(CPU 占用 100% 等情况)
数据库·sql·postgresql
静听山水9 小时前
Redis的Pipeline (管道)
数据库·redis·php
无尽的沉默9 小时前
SpringBoot整合Redis
spring boot·redis·后端
数据知道9 小时前
PostgreSQL 性能优化: I/O 瓶颈分析,以及如何提高数据库的 I/O 性能?
数据库·postgresql·性能优化
静听山水9 小时前
Redis核心数据结构-list
数据结构·redis·list
繁华落尽,寻一世真情9 小时前
【基于 AI 的智能小说创作助手】MuMuAINovel-sqlite 基于 AI 的智能小说创作助手
数据库·人工智能·sqlite
TOPGO智能9 小时前
在腾讯CloudStudio上成功部署Moltbot接入飞书
数据库
云边有个稻草人9 小时前
关系数据库替换用金仓:数据迁移过程中的完整性与一致性风险
数据库·国产数据库·kingbasees·金仓数据库·关系数据库替换用金仓