Redis-事务

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

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

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

相关推荐
2501_941148152 小时前
多语言微服务架构与边缘计算技术实践:Python、Java、C++、Go深度解析
数据库
w***z502 小时前
MYSQL 创建索引
数据库·mysql
章鱼哥7303 小时前
[特殊字符] SpringBoot 自定义系统健康检测:数据库、Redis、表统计、更新时长、系统性能全链路监控
java·数据库·redis
5***E6853 小时前
MySQL:drop、delete与truncate区别
数据库·mysql
记得记得就1514 小时前
【MySQL数据库管理】
数据库·mysql·oracle
Austindatabases4 小时前
给PG鸡蛋里面挑骨头--杭州PostgreSQL生态大会
数据库·postgresql
秃了也弱了。4 小时前
MySQL空间函数详解,MySQL记录经纬度并进行计算
android·数据库·mysql
星环处相逢4 小时前
MySQL数据库管理从入门到精通:全流程实操指南
数据库·mysql
h***04775 小时前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink
源来猿往5 小时前
redis-架构解析
数据库·redis·缓存