まず、Redis トランザクションの本質を簡単に紹介します。
Redis トランザクションの本質は一連のコマンドです。トランザクションは一度に複数のコマンドの実行をサポートしており、トランザクション内のすべてのコマンドはシリアル化されます。トランザクション実行処理中、キュー内のコマンドは順番に実行され、他のクライアントから送信されたコマンド要求はトランザクション実行コマンドシーケンスに挿入されません。
概要: Redis トランザクションは、キュー内の一連のコマンドを 1 回限り、順次、排他的に実行します。
Redis トランザクションには分離レベルの概念がありません:
バッチ操作は、EXEC コマンドを送信する前にキュー キャッシュに入れられ、実際には実行されないため、トランザクション内にクエリはありません。トランザクション内の更新は、トランザクション外のクエリでは確認できません。
Redis はアトミック性を保証しません:
Redis では、単一のコマンドはアトミックに実行されますが、トランザクションはアトミック性を保証せず、ロールバックはありません。トランザクション内のいずれかのコマンドが実行に失敗した場合でも、残りのコマンドは引き続き実行されます。
Redis トランザクションの 3 つの段階:
トランザクション コマンドを開始し、トランザクションを実行するキューを作成します
Redis トランザクション関連コマンド:
watch key1 key2...: 1 つ以上のキーを監視します。トランザクションが実行される前に監視対象のキーが他のコマンドによって変更された場合、トランザクションは中断されます (楽観的ロックと同様)
# multi: トランザクション ブロックの開始をマークします (キューに入れられます) exec: すべてのトランザクションブロックのコマンドを実行します (exec が実行されると、以前に追加された監視ロックが解除されます) discard: トランザクションをキャンセルし、トランザクションブロック内のすべてのコマンドを破棄しますUnwatch: すべてのキーのウォッチ監視をキャンセルしますRedis トランザクションの使用例:(1)通常の実行
redis ビデオ チュートリアル )
(3) コマンドがある場合トランザクションキュー内で性的エラー(Javaのコンパイルエラーと同様)が発生した場合、EXECコマンド実行時にすべてのコマンドが実行されません以上がRedis トランザクションのユースケースの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。