Redis-事务

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

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

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

相关推荐
MarkHard12314 小时前
如何利用redis使用一个滑动窗口限流
数据库·redis·缓存
island131416 小时前
【Redis#10】渐进式遍历 | 数据库管理 | redis_cli | RES
数据库·redis·bootstrap
心想事成的幸运大王16 小时前
Redis的过期策略
数据库·redis·缓存
倔强的石头_16 小时前
CentOS 上安装KingbaseES(ISO包)详细教程
数据库
2401_8979300617 小时前
使用Docker轻松部署Neo4j图数据库
数据库·docker·neo4j
诗句藏于尽头17 小时前
Django模型与数据库表映射的两种方式
数据库·python·django
寻星探路17 小时前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
盖世英雄酱5813618 小时前
Read timed out问题 排查
java·数据库·后端
云动雨颤19 小时前
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
数据库·spring boot·tomcat
RestCloud20 小时前
Kafka实时数据管道:ETL在流式处理中的应用
数据库·kafka·api