Redis Exec-Befehl

Redis-Transaktionen

Der Redis Exec-Befehl wird verwendet, um alle Befehle innerhalb eines Transaktionsblocks auszuführen.

Syntax

Die grundlegende Syntax des Redis Exec-Befehls lautet wie folgt:

redis 127.0.0.1:6379> Exec

Verfügbare Versionen

>= 1.2.0

Rückgabewert

Die Rückgabewerte aller Befehle im Transaktionsblock, angeordnet in der Reihenfolge, in der die Befehle ausgeführt wurden. Wenn der Vorgang unterbrochen wird, wird ein nil-Wert zurückgegeben.

Beispiele

# 事务被成功执行

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


# 监视 key ,且事务成功执行

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


# 监视 key ,且事务被打断

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"        # 就在这时,另一个客户端修改了 lock_times 的值
QUEUED

redis 127.0.0.1:6379> INCR lock_times
QUEUED

redis 127.0.0.1:6379> EXEC                  # 因为 lock_times 被修改, joe 的事务执行失败
(nil)

Redis-Transaktionen

Andere Erweiterungen