Redisトランザクション
Redis トランザクションは一度に複数のコマンドを実行でき、次の 2 つの重要な保証が付いています:
トランザクションは単一の分離された操作です: トランザクション内のすべてのコマンドはシリアル化され、順番に実行されます。トランザクションの実行中、他のクライアントから送信されたコマンド要求によって中断されることはありません。
トランザクションはアトミックな操作です。トランザクション内のすべてのコマンドが実行されるか、まったく実行されないかのどちらかです。
トランザクションは開始から実行まで次の 3 つの段階を経ます:
トランザクションを開始します。
チームに参加するコマンド。
トランザクションを実行します。
インスタンス
は、最初に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 トランザクション コマンド
次の表に、Redis トランザクションの関連コマンドを示します:
シリアル番号 | コマンドと説明 |
---|---|
1 | DISCARD トランザクションをキャンセルし、トランザクションの実行を中止します。 ブロック内のすべてのコマンド。 |
2 | EXEC すべてのトランザクションブロック内でコマンドを実行します。 |
3 | MULTI トランザクションブロックの開始をマークします。 |
4 | UNWATCH WATCHコマンドで全てのキーの監視を解除します。 |
WATCH key [key ...] | トランザクションが実行される前に、この (または複数の) キーが他のコマンドによって変更された場合、トランザクションは中断されます。 |