前言
Redis 事务可以一次执行多个命令, 批量操作在发送 EXEC 命令前被放入队列缓存,并且带有以下两个重要的保证:
1、收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
2、在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
开始事务。
命令入队。
执行事务。
如下图:
特点
1)Redis 的事务是通过 MULTI,EXEC,DISCARD 和 WATCH 这四个命令来完成的。
2)Redis 的单个命令都是原子性的,所以这里确保事务性的对象是命令集合。
3)Redis 将命令集合序列化并确保处于同一事务的命令集合连续且不被打断的执行
4)Redis不支持回滚操作
使用
MULTI:标记事务开始
EXEC:事务执行
DISCARD:清除所有先前在一个事务中放入队列的命令
WATCH:监控事务的执行