Redis 事务

事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。

事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

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

  1. 开始事务(multi)

  2. 命令入队

  3. 执行事务(exec)

1
2
3
4
5
6
7
8
9
192.168.204.130:6379> multi
OK
192.168.204.130:6379> set mykey test
QUEUED
192.168.204.130:6379> get mykey
QUEUED
192.168.204.130:6379> exec
1) OK
2) "test"

常用命令

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