リレーショナル データベースの知識がある場合は、トランザクションの実行中、Redis コマンドの実行が失敗する場合でも、Redis は残りの部分を実行するという事実に気づくでしょう。ロールバック操作を実行せずにトランザクションや他のコマンドを実行すると、この動作が奇妙に見えるかもしれません。
ただし、この動作には合理性もあります。
呼び出された Redis コマンドに構文エラーがある場合にのみ、このコマンドは実行に失敗します (Redis では実行できます)。このコマンドをトランザクション キューに入れるときにそのような問題を検出する)、またはそのデータ型に準拠しないキーに対して操作を実行する。実際には、これは Redis コマンドの実行が失敗する原因となるのはプログラム エラーのみであることを意味します。このタイプのエラーはプログラム開発中に発見される可能性が最も高く、実稼働環境では通常はほとんど見つかりません。
Redis はトランザクションをロールバックする機能を必要としないため、より高速な実行速度を確保するためにシステム内の機能が簡素化されています。
Redis トランザクションのこの動作には、プログラムに欠陥 (バグ) がある可能性があるという一般的な反対意見があります。ただし、トランザクションのロールバックではプログラム エラーは解決されないことに注意してください。
たとえば、クエリでキーの値が 1 ではなく 2 増加する場合、または間違ったキーが増加する場合、トランザクション ロールバック メカニズムにはこれらのプログラムの問題を解決する方法がありません。 Redis コマンドの実行が失敗する原因となるプログラマ自身のエラーは誰も修正できないことに注意してください。これらのプログラム エラーが運用環境に入る可能性は低いため、Redis を開発する場合は、エラー ロールバックを実装せずに、よりシンプルで高速な方法を選択します。
つまり、プログラマー自身が原因で発生するエラーを回避するメカニズムがなく、そのようなエラーは実稼働環境では通常発生しないことを考慮して、Redis は、ロールバック メソッドを使用しない、よりシンプルで高速な ロールバック メソッドを選択しました。トランザクションを処理します。
推奨: 「Redis ビデオ チュートリアル 」
以上がRedis はロールバックをサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。