走进redis事务

走进redis事务

听到事务,相比大家知道传统数据库事务,最重要的就是四原则:

  • 原子性:要么全部成功,要么全部失败
  • 隔离性:多个并发事务之间互相隔离
  • 永久性:事务一旦提交,数据永久有效
  • 一致性:事务执行之前和执行之后处于一致性状态

redis作为内存数据库,是否也支持事务?

答案是肯定的,但是redis的事务支持和传统数据库的支持是有一定的区别的;redis的事务支持是不具备上述的四个条件的,具体的我们在操作中见真知。


事务命令

  • multi 开启事务
  • exec 执行事务
  • discard 取消事务

事务过程

  • 开启事务
  • 命令入队
  • 执行事务

案例:

正常执行事务

在这里插入图片描述

放弃事务

在这里插入图片描述


事务错误

入队命令错误

当我们开启事务multi之后,输入的命令会进行入队操作,入队命名错误的时候,会实际报出来,提交事务的时候,也会失败,造成全部命令提交失败,数据更新失败。
在这里插入图片描述


入队命令正确,数据类型错误

这个错误和上面一个错误的区别在于入队是命令是正确的,但是操作的数据类型是错误的,比如说给一个字符串进行incr操作等等;这种操作执行exec之后,其他正确的操作会继续执行,但是出错的这个不会执行,这里就没有保证原子性;

在这里插入图片描述


总结

redis 事务也是开发和面试使用比较多的,需要我们好好掌握,最好能阅读下源码,看下具体实现的机制。


欢迎关注微信公众号:后台服务器开发


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值