【Redis】【MySQL】Redis和MySQL对于事务的不同支持

4 篇文章 0 订阅

事务

事务可以理解为一组指令的合集。

MySQL

MySQL与硬盘进行数据交换,它对于事务的支持具有四大特性,也就是我们常说的ACID特性,即原子性、一致性、隔离性和持久性。

对于一个事务,如果其中的某条指令发生错误,则整个事务都不会成功,会回滚。

举耳熟能详的银行转账问题的例子来说,张三转给李四100块钱是一个事务,这个事务包含两个操作,一个是张三转出100元,一个是李四接收100元。对于MySQL来说,如果这两个操作任何一个出现问题,则整个事务都会回滚,也就是说张三和李四卡中的金额还是之前的金额。

Redis

Redis存在于内存中,它是一种NoSQL型数据库。它对于事务的支持并没有以上的特性,它具有一次性、顺序性、排他性的特性。

对于一个事务,如果其中的某条指令发生编译错误,则整个事务都不会执行。这个很好理解,编译没有通过,相当于你面对老外不会说英语一样,先回炉重造吧,把语法修正。如果其中的某条指令发生运行错误,则事务照常进行,只不过运行错误的语句不会产生结果。

multi
set k1 v1
incr k1
set k2 v2
exec

对于这个事务来说,第二行设置的是String的数据类型,String数据类型是无法incr的,因此第三行会抛出异常,但是第四行语句会照常进行。在事务执行完毕,get k2是可以取到v2的。

讲到这里,大家可以明白Redis和MySQL对于事务的不同支持了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值