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 を返します。

オンラインサンプル

# トランザクションが成功実行されました
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 トランザクション