Redis トランザクションは、一度に複数のコマンドを実行できます。本質的にはコマンドのセットです。トランザクション内のすべてのコマンドはシリアル化され、挿入されることなく順番にシリアルに実行されます。その他のコマンド。
1. Redis トランザクションとは何ですか?
複数のコマンドを一度に実行できます。これは基本的にコマンドの集合です。トランザクション内のすべてのコマンドはシリアル化され、他のコマンドに挿入されることなく順番にシリアルに実行されます
2. Redis トランザクションでは何ができるでしょうか?
キューでは、一連のコマンドが特定の連続的かつ排他的な方法で実行されます。
3. redis コマンドの使用方法は?
1. トランザクション関連コマンド:
(1) DISCARD: トランザクションをキャンセルし、トランザクション ブロック内のすべてのコマンドの実行を放棄します
(2) EXEC : トランザクションブロック内のコマンドを実行します
## (3) MULTI: トランザクションの開始をマークします## (4) UNWATCH: WATCH コマンドによるすべてのキーの監視を解除します
# # (5) WATCH キー [key...]: 1 つ (または複数) のキーを監視します。トランザクションを実行する前に、この (またはこれらの) キーが他のコマンドによって変更されると、トランザクションは中断されます。 2. トランザクションエラーレポートの問題: (1) ステートメントエラー: キュー追加時にエラーが直接レポートされ、このエラーが発生するとトランザクション全体がロールバックされます (2) ロジック エラー: たとえば、文字列 1 が指定された場合、実行中にエラーが報告されます。この種のエラーは、トランザクション内の他の操作には影響しません。この記事のみがエラーを報告します。 3. 監視監視:(1) 楽観的ロック:
楽観的ロック (楽観的) Lock), 楽観的なロックです。データを取得しに行くたびに、他の人がデータを変更しないと考えてロックしません。ただし、更新するときに、この間に他の人がデータを更新したかどうかを判断します。 「バージョン番号」などのメカニズムは、マルチ読み取りアプリケーション タイプで楽観的に使用され、スループットを向上させることができます。
## (2) 悲観的ロック
§
## )更新される前に現在のレコードのバージョンに拘束される 悲観的ロックでは、データを取得しに行くたびに、他の人が変更に従って動作するだろうと考えてしまい、上書きなどの問題が発生します。したがって、データを取得するたびにデータはロックされるため、他の人がデータを取得したい場合はブロックされます。変更が完了すると、ロックのロックを解除して使用できます。従来のリレーショナル データベースでは、このようなロック メカニズムが多数使用されています。 . 行ロック、テーブル ロック、読み取りロック、書き込みロックなど、これらはすべて操作を実行する前にテーブルをロックします。 ペシミスティック ロックはデータのセキュリティを確保しますが、パフォーマンスを低下させます4 つおよび 3 つの機能
1. 個別の分離操作:
トランザクション内のすべてのコマンドはシリアル化され、順番に実行されます。トランザクションの実行中、他のクライアントから送信されたコマンド要求によって中断されることはありません。 2. 分離レベルの概念はありません: トランザクションが送信される前に命令が実際に実行されることはないため、キュー内のコマンドは送信される前に実際には実行されません。 「トランザクション内のクエリは物理的な更新を認識する必要があるが、トランザクション外のクエリはこの問題を認識できない」という問題があります。 3. アトミック性は保証されていません: Redis の場合同じトランザクション内 1 つのコマンドの実行が失敗しても、後続のコマンドはロールバックせずに実行されます。 (キューに参加するときにエラーが発生した場合、つまり Java に似たコンパイル時例外と実行時例外が発生した場合を除きます。コンパイルではロールバックが発生し、実行時例外はロールバックしません) 推奨チュートリアル : 「Redis チュートリアル
」以上がRedisトランザクションとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。