前言
Redis的事务其实是有事务一说的,但是Redis的事务其实又不能完全意义上称为事务,它其实是一种比较弱的事务,甚至可以理解为他是一种批量提交操作,今天我们来简单认识下什么是Redis的事务吧。
什么是Redis的事务?
Redis的事务可以一次执行多个命令,即将多个命令一起提交处理。
Redis事务的两个特征
单独的隔离操作:事务中的所有命令都会序列化、按顺序的执行,并且在执行过程中不会被其他客户端发送的命令打断;
原子操作:事务中的命令要么全部执行成功,要么全部都不执行;
Redis事务执行过程
开始事务:开始事务的命令
命令入队列:将提交的命令全部放入队列
执行事务:将队列中的命令一起提交执行
命令
multi:开启事务
exec:结束事务,将队列中的命令批量提交
取消事务:discard
监视key:watch key
当对一个key进行监视之后,如果在事务开始之后,还未提交之前,这个key被修改,则此次事务被中断,记住一次监视只对一次事务有效,也就是说当一次事务被中断,这个监视器就失效了,监视动作是一次性的;
在事务还未提交之前我做了这样一个操作来修改该被监视的key:
取消监视:unwatch
取消对所有key的监视,亲测下并不能在一个key开始事务过程中取消监视,感觉存在的意义不大,开始了事务该key也会被自动取消,感觉唯一的场景是设置了对key的监视,但是并未在事务中操作该key,然后需要取消时用到该命令