English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Команда Redis Exec

Транзакции Redis

Команда Redis Exec предназначена для выполнения всех команд в блоке операций.

Грамматика

Основная грамматика команды redis Exec выглядит следующим образом:

redis 127.0.0.1:6379> Exec

Доступные версии

>= 1.2.0

Возвратные значения

Возвратные значения всех команд в блоке операций, расположенные в порядке выполнения команд. Когда операция прервана, возвращается пустое значение nil.

Онлайн пример

# The transaction is successfully executed
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> INCR user_id
QUEUED
redis 127.0.0.1:6379> INCR user_id
QUEUED
redis 127.0.0.1:6379> INCR user_id
QUEUED
redis 127.0.0.1:6379> PING
QUEUED
redis 127.0.0.1:6379> EXEC
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) PONG
# Watch key, and the transaction is successfully executed
redis 127.0.0.1:6379> WATCH lock lock_times
OK
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET lock "huangz"
QUEUED
redis 127.0.0.1:6379> INCR lock_times
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) (integer) 1
# Watch key, and the transaction is interrupted
redis 127.0.0.1:6379> WATCH lock lock_times
OK
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET lock "joe" # At this moment, another client modified the value of lock_times
QUEUED
redis 127.0.0.1:6379> INCR lock_times
QUEUED
redis 127.0.0.1:6379> EXEC # Because lock_times was modified, joe's transaction failed
(nil)

Транзакции Redis