Redis-事务

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

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

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

相关推荐
悟能不能悟2 小时前
redis的红锁
数据库·redis·缓存
安当加密4 小时前
MySQL数据库透明加密(TDE)解决方案:基于国密SM4的合规与性能优化实践
数据库·mysql·性能优化
JH30735 小时前
第七篇:Buffer Pool 与 InnoDB 其他组件的协作
java·数据库·mysql·oracle
板凳坐着晒太阳5 小时前
ClickHouse 配置优化与问题解决
数据库·clickhouse
数据库生产实战5 小时前
解析Oracle 19C中并行INSERT SELECT的工作原理
数据库·oracle
AAA修煤气灶刘哥6 小时前
服务器指标多到“洪水泛滥”?试试InfluxDB?
数据库·后端·面试
阿沁QWQ6 小时前
MySQL服务器配置与管理
服务器·数据库·mysql
qq_5470261797 小时前
SpringBoot+Redis实现电商秒杀方案
spring boot·redis·后端
程序新视界8 小时前
MySQL“索引失效”的隐形杀手:隐式类型转换,你了解多少?
数据库·mysql·dba
Logintern098 小时前
windows如何设置mongodb的副本集
数据库·windows·mongodb