Redis系列之事务

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

Redis系列之事务

前言

Redis的事务其实是有事务一说的,但是Redis的事务其实又不能完全意义上称为事务,它其实是一种比较弱的事务,甚至可以理解为他是一种批量提交操作,今天我们来简单认识下什么是Redis的事务吧。


什么是Redis的事务?

Redis的事务可以一次执行多个命令,即将多个命令一起提交处理。


Redis事务的两个特征

单独的隔离操作:事务中的所有命令都会序列化、按顺序的执行,并且在执行过程中不会被其他客户端发送的命令打断;

原子操作:事务中的命令要么全部执行成功,要么全部都不执行;


Redis事务执行过程

开始事务:开始事务的命令

命令入队列:将提交的命令全部放入队列

执行事务:将队列中的命令一起提交执行


命令

multi:开启事务

exec:结束事务,将队列中的命令批量提交

Redis系列之事务

Redis系列之事务


取消事务:discard

Redis系列之事务


监视key:watch key

当对一个key进行监视之后,如果在事务开始之后,还未提交之前,这个key被修改,则此次事务被中断,记住一次监视只对一次事务有效,也就是说当一次事务被中断,这个监视器就失效了,监视动作是一次性的;


Redis系列之事务

在事务还未提交之前我做了这样一个操作来修改该被监视的key:

Redis系列之事务


取消监视:unwatch

取消对所有key的监视,亲测下并不能在一个key开始事务过程中取消监视,感觉存在的意义不大,开始了事务该key也会被自动取消,感觉唯一的场景是设置了对key的监视,但是并未在事务中操作该key,然后需要取消时用到该命令

Redis系列之事务

原文始发于微信公众号(Justin的后端书架):Redis系列之事务