首页 > 代码库 > Redis--事务

Redis--事务

一、事务

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

    • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
    • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

一个事务从开始到执行会经历以下三个阶段:

    • 开始事务。
    • 命令入队。
    • 执行事务。

二、命令

  1、Multi 命令  

Multi 命令用于标记一个事务块的开始。

事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行

  返回OK

2、Exec 命令

  Exec 命令用于执行所有事务块内的命令。

  事务块内所有命令的返回值,按命令执行的先后顺序排列。 当操作被打断时,返回空值 nil 。

  技术分享

3、Discard 命令

  Discard 命令用于取消事务,放弃执行事务块内的所有命令

  总是返回 OK 。

  技术分享

 

4、Watch 命令

  Watch 命令用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

  总是返回 OK 

5、Unwatch 命令

  Unwatch 命令用于取消 WATCH 命令对所有 key 的监视。

  总是返回 OK 。

 

 

Redis--事务