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

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

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

相关推荐
ClickHouseDB1 分钟前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906945 分钟前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺1 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw1 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社2 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙3 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3764 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02144 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川4 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组4 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制