概要
複数のコマンドを一度に実行できます。これは本質的にはコマンドのセットです。トランザクション内のすべてのコマンドは、他のコマンドによって 挿入されることなくシリアル化され、シリアル化されて実行され、ブロックは許可されません。
複数の redis コマンドを一度に実行します。
できること
キュー内の一連のコマンドを、順番に排他的に一度に実行します。
プレイ方法
MULTI コマンドは、redis トランザクションを開くために使用されます。このコマンドは常に OK と応答します (成功するかどうかはわかります。), 現時点では、ユーザーは を 1 つずつ実行する代わりに、複数のコマンドを一度に実行できます。 redis はそれらをキューに入れ、すべてのコマンドは EXEC コマンドによって呼び出されます。
DISCARD はバッチ操作を中止します。
一般的なコマンド
説明 | |
---|---|
EXEC | |
MULTI | |
#UNWATCH | |
WATCH key [key …] | |
ケース 通常実行 ##トランザクション破棄 連続で この問題について、redis のトランザクション サポートを理解する方法 Redis はトランザクションを部分的にサポートしており、この部分では、正しいトランザクションは実行され、間違ったトランザクションは実行されません。 悲観的ロック/楽観的ロック/CAS (チェックと設定) 悲観的ロック (悲観ロック) は、その名の通り非常に悲観的で、データを取りに行くたびに他人が変更するのではないかと思い、データを取得するたびにロックをかけてしまいます。他の人がデータを取得したい場合、ロックを取得するまでブロックされます。このようなロック メカニズムの多くは、行ロック、テーブル ロック、読み取りロック、書き込みロックなど、従来のリレーショナル データベースで使用されており、操作前にすべてロックされます。 テーブル ロック: テーブル全体をロックします。ただし、このテーブルには多くのデータが含まれる可能性があり、この時点ではプロセスに大規模な変更を加える必要があり、キューに入れられるスレッドがますます増えます。 行ロック: 各レコードをロックする オプティミスティック ロック
改ざんはありません。最初に監視してからマルチを有効にして、2 つの金額変更が同じトランザクション内にあることを確認します。 監視中に、別のトランザクションが共有データを変更したことが判明しました。トランザクションの実行が失敗する原因になります
キーは監視されており、キーが改ざんされると以降のトランザクションの実行が無効になります unwatch watch コマンドによるすべてのキーの監視を解除します exec を実行すると、実行前に付加されていた監視ロックが解除されます
Watch 命令はオプティミスティック ロックに似ています。トランザクションが送信されるときに、Key の値が別のクライアントによって変更された場合 (たとえば、リストが別のクライアントによってプッシュ/ポップされた場合)、トランザクション全体がキューは実行されません。 WATCH コマンドによるトランザクション実行前に複数のキーが監視されます。WATCH 後にキーの値が変更された場合、EXEC コマンドによって実行されたトランザクションは放棄され、Nullmulti-bulk 応答が返されます。トランザクションの実行が失敗したことを呼び出し元に通知するために返されます。
• オープン: MULTI でトランザクションを開始します。 • エンキュー: 複数のコマンドをキューに入れます。これらのコマンドは受信しても実行されませんが、実行を待機するトランザクション キューに置かれます • 実行: EXEC コマンドによってトリガーされるトランザクション
個別分離操作: トランザクション内のすべてのコマンドはシリアル化され、順番に実行されます。トランザクションの実行中、他のクライアントから送信されたコマンド要求によって中断されることはありません。 分離レベルの概念はありません。キュー内のコマンドは、トランザクションが送信されるまで実際には実行されません。トランザクションが送信される前に実際に実行される命令はないため、トランザクション内に「確認するためのクエリ」は存在しません。トランザクション" トランザクション外でクエリを実行すると、redis 内の更新が表示されません。これは非常に厄介な問題です。 アトミック性は保証されていません。同じ redis トランザクション内でコマンドの実行が失敗しても、後続のコマンドは引き続き実行されます。 Roll は AI |
以上がRedis 学習: Redis トランザクションの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。