banner
指数爆炸

指数爆炸

我做了对饭 !
github
bilibili

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

序文#

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

何だって?それって、トランザクションって何のためにあるの?原子性も一貫性もないじゃん。

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

分離性#

ロールバックがサポートされていなくても、並行環境下での分離性があります。watchを使用すると楽観的ロックのようなものが実現でき、最後の exec 時に競合をチェックします。

シンプルで効率的#

たくさんの Redis コマンドを学んできましたが、ほとんどのコマンドはエラーを返しません。たとえば、キーを間違えて入力した場合でも、単に nil を返すだけです。Redis コマンドの構文エラーや誤ったタイプのキーを使用した場合にのみエラーが発生します。これらのエラーは開発時に発見されるべきです。

したがって、ロールバックがなくなったことで、Redis の内部はよりシンプルで効率的になり、パフォーマンスが向上します。

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

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