Redis-事务

23.Redis事务和MySQL事务有什么区别?是否也保证了事务的ACID特性?

数据库的事务就是开启事务,然后执行数据库的一系列操作,如果没有异常就会提交事务,如果出现异常就会回滚事务。而Redis通过MULTI开启事务,多个命令不会立刻执行,而是放在Redis中的一个事务队列里等到执行。直到执行EXEC,这些队列中的命令才会执行。在这个过程中如果某一个命令发生异常,不会导致所有的命令回滚,而是忽略异常命令,继续执行其它命令。而且Redis还提供了DISCARD命令,取消队列中的命令。

Redis的设计更倾向于性能,而不是为了像数据库一样,保证事务的一致性而且牺牲性能。Redis的事务用的并不多,通过Lua脚本也可以保证多个命令执行的原子性,并且性能还会更好。因为通过Lua脚本,它会将多个命令打包,一起放到Redis的服务端进行执行。在这个过程中,只需要一次网络I/O就行。

相关推荐
abcy071213几秒前
【无标题】
数据库·sqlite
code2roc3 分钟前
SpringBoot整合Milvus向量数据库
数据库·spring boot·milvus·向量化
AugustRed4 分钟前
Flyway 数据库版本迁移 零基础完整学习文档
数据库·学习
Yvonne爱编码12 分钟前
数据库---Day9 视图(附完整数据库脚本+练习题)
数据库·mysql·oracle
sukioe13 分钟前
Redis 入门:为什么出现、核心原理与安装配置
数据库·redis·缓存
宇砾17 分钟前
浅谈Redis(1)
数据库·redis·缓存
heimeiyingwang32 分钟前
【架构实战】Canal数据同步:MySQL数据变更实时捕获
数据库·mysql·架构
cdbqss134 分钟前
VB2026 动态生成工具栏类 BqGetToolStrip
数据库·oracle·开源·.net·学习方法·教育电商·basic
AI人工智能+电脑小能手37 分钟前
【大白话说Java面试题 第85题】【Mysql篇】第15题:MySQL 的事务中,幻读是怎么解决的?
java·开发语言·数据库·mysql·面试
yoothey43 分钟前
MySQL 索引小白面试详解
数据库·mysql