公众号:架构师与哈苏
关注公众号进入it交流群! 公众号:架构师与哈苏 不定时都会推送一些实用的干货。。。

Redis事务提供了一种"将多个命令打包,然后一次性,按顺序地执行"的机制,并且事务在执行的期间不会主动中断.

redis中事务是可以视为一个队列,即我们可以通过MULTI开始一个事务,这相当于我们声明了一个命令队列。接下来,我们向Redis中提交的每条命令,都会被排入这个命令队列。当我们输入EXEC命令时,将触发当前事务,这相当于我们从命令队列中取出命令并执行,所有Redis中一个事务从开始执行会经历开始事务,命令入队和执行事务 三个阶段。

redis执行的三个阶段

  1. 开始事务
  2. 命令入队
  3. 执行事务
multi
set name "你抓周树人和我鲁迅有什么关系"
get name
exec

若在事务队列中存在命令性错误,则执行EXEC命令时,所有命令都不会执行。

若在事务队列中存在语法性错误,则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。

序号 命令 描述
1 DISCARD 取消事务,放弃执行事务块内的所有命令。
2 EXEC 执行所有事务块内的命令。
3 MULTI 标记一个事务块的开始。
4 UNWATCH 取消WATCH命令对所有key的所有key的监视。
5 WATCH key [key...] 监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。
posted on 2021-11-02 16:18  公众号/架构师与哈苏  阅读(58)  评论(0)    收藏  举报