Redis-事务

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

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

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

相关推荐
Arbori_2621535 分钟前
Oracle 分析函数(Analytic Functions)
数据库·oracle
notfindjob1 小时前
QT Sqlite数据库-教程002 查询数据-上
数据库
猫咪-95271 小时前
数据库原理及应用mysql版陈业斌实验三
java·数据库·sql
凯哥19701 小时前
Socket.IO 分布式系统优化指南
redis·后端
TDengine (老段)2 小时前
TDengine 语言连接器(Go)
大数据·数据库·物联网·golang·时序数据库·tdengine·iotdb
加油,旭杏2 小时前
【Redis】数据结构和内部编码
数据库·redis·缓存
极限实验室2 小时前
Easysearch 自动备份:快照生命周期管理
数据库
怒放的生命.3 小时前
《MySQL从入门到精通》
android·数据库·mysql
佳腾_3 小时前
【高性能缓存Redis_中间件】三、redis 精通:性能优化与生产实践
redis·缓存·云原生·中间件·云计算
Huazie3 小时前
flea-cache使用之Redis哨兵模式接入
java·redis·开源