所在位置:首页 → 数据库 → Redis学习教程六:事务

Redis学习教程六:事务

发布: 更新时间:2022-09-12 22:14:13

一、事务的本质

一组命令的集合。一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行。

二、事务的特性

  • 一次性:指的是Redis中的事务只执行一次,在该事务执行结束之后,这条事务的生命周期就结束了,再次执行事务时需要重新开启事务。
  • 顺序性:指Redis的事务中的所有命令,都是按照先后顺序依次执行的。
  • 排他性:指事务在对某一个数据进行操作的同时,其他事务或其他命令不能对这个数据进行操作。

三、注意

1、redis事务没有隔离级别的概念。所有的命令在事务中,并没有直接执行,只有发起执行命令的时候才
会执行(Exec)
2、redis单条命令是保证原子性的,但是事务不保证原子性

四、操作步骤

1.开启事务(multi)
2.命令入队(正常命令集合)
3.执行事务(exec)

MULTI                 #标记一个事务块的开始。
WATCH key [key ...]   #监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
UNWATCH               #取消 WATCH 命令对所有 key 的监视。
DISCARD               #取消事务,放弃执行事务块内的所有命令。
EXEC                  #执行所有事务块内的命令。

五、所有情况

  • 正常执行事务
  • 放弃事务
  • 编译型异常(代码有问题命令出错,事务中所有的命令都不会被执行)
  • 运行时异常(IO异常,如果事务队列中存在逻辑问题,那么执行命令的时候,其他命令是可以正常执行的,
    错误命令抛出异常)
标签:, ,
文章排行