Redis事务是Redis提供的一种特性,它可以将多个命令作为一个原子操作来执行,这意味着要么全部执行,要么全部不执行。Redis事务的相关命令有:MULTI、EXEC、DISCARD、WATCH。
MULTI: MULTI 命令用于标记一个事务块的开始。在执行 EXEC 命令前,全部 MULTI 命令之后的命令都会被放进一个队列当中,但不会立即被执行。
EXEC: EXEC 命令用于执行所有 MULTI 之后发送的命令。如果某个(或某些) MULTI 之后的命令被阻塞,那么整个事务会失败,因此 EXEC 命令只会返回失败标识。
DISCARD: DISCARD 命令用于取消事务,放弃执行事务块内的所有命令。
WATCH: WATCH 命令用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
一个事务从开始到执行会经历以下三个阶段:
以下是一个事务的例子, 它先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的所有命令:
redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming"
下表列出了 redis 事务的相关命令:
序号 | 命令及描述 |
---|---|
1 | DISCARD
取消事务,放弃执行事务块内的所有命令。 |
2 | EXEC
执行所有事务块内的命令。 |
3 | MULTI
标记一个事务块的开始。 |
4 | UNWATCH
取消 WATCH 命令对所有 key 的监视。 |
5 | WATCH key [key ...]
监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。 |
F.44.1. uuid-ossp 函数F.44.2. 编译uuid-ossp uuid-ossp模块提供函数使用几种标准算法之一产生通用唯一标识符(UUID)。还提供...
目录H.1. 客户端接口H.2. 管理工具H.3. 过程语言H.4. 扩展 PostgreSQL是一项复杂的软件项目,管理它是一项困难的工作。我们发现...
在 Oracle 中,ROLLBACK 语句可以用来撤销当前事务或有问题的事务。本教程就将教大家如何使用 ROLLBACK 语句。ROLLBACK语法ROLLB...
OracleDatabase,又名 OracleRDBMS,简称 Oracle。Oracle 数据库系统是美国 Oracle 公司(甲骨文)提供的以分布式数据库为核心的...