banner
指数爆炸

指数爆炸

我做了对饭 !
github
bilibili

redisのトランザクションはロールバックできないので、そのトランザクションには何の意味がありますか?

序文#

Redis を学んでいると、Redis のトランザクション機能がロールバックできないことに気づきました。つまり、トランザクションを実行する際に途中で何かエラーが発生した場合、トランザクションの前に戻らず、そのまま続行されます。

え?え?それではトランザクションは何の役に立つのでしょうか。原子性も一貫性もありません。


資料を調査し、考えた結果、少しまとめてみましたが、完全ではないかもしれません。

パフォーマンスの最適化#

トランザクションはすべてのコマンドを一度にサーバーに送信し、一度に実行されるため、パフォーマンスが向上します

しかし、私はこの小さなパフォーマンスの最適化があまり意味がないと思います

並行環境でのデータの整合性#

複数のクライアントが同時に Redis インスタンスを操作する可能性があるため、トランザクションは実行中に割り込まれることなく保証されます。したがって、トランザクション内のコマンドのデータの整合性は保証されませんが、並行環境でのデータの整合性は保証されます

シンプルで効率的#

私たちは、Redis の多くのコマンドを学んできましたが、ほとんどのコマンドがエラーを返さないことに気づきました。たとえ入力したキーが間違っていても、単に nil を返すだけです。したがって、Redis のコマンドの構文が間違っている場合にのみエラーが発生します

つまり、ロールバックをサポートする必要はないので、これにより Redis はよりシンプルで効率的になります

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。