0

redisスタンドアロンがどのように楽観的なロックを提供するのかを読んでいます。私はまた、分散ロックのために利用可能なredisウェブサイト上のRedlockアルゴリズムに出くわしました。クラスタモードのレディスロックを有効にしました

ここでわからないことは、Redisで分散ロック(クラスタモードが有効)が必要な理由です。

分散モードでは、最大15個のシャードを持つことができ、各シャードは重複しないレコードを持つことができます。共有データがないので、分散ロックの必要性は何ですか?

それぞれの共有に対して楽観的なロックが行われませんか? 1つの理由は複数キー操作であるかもしれませんが、私は何も考えることができません。

私の理解は正しいですか? Redisの中

答えて

0

分散ロックは通常のRedisにおける分散アプリケーションではなく、具体的には、データをロックするために使用されます。たとえば、ショッピングアプリに「有料」ボタンがあり、トランザクションの処理に数秒かかる場合があります。その間、ユーザーは複数回ボタンを押すことがあります。

これらのRESTのそれぞれは、異なるWebサーバーに行くかもしれない呼び出します。どのように複数の請求書を確実に防止しますか?もちろん、レディスロックで!

しかし、あなたは、単一ノード/シャードロックを使用する場合は、しくじっまたは重複するトランザクションで、その結果、この正確な時間ウィンドウで失敗このノードを危険にさらします。 RedLockアルゴリズムの分散ロックを使用すると、単一ノードの障害でもロックが一貫性のある状態に保たれます。

+0

返信いただきありがとうございます。私の理解のRedisのあたりとしては、データベースが最初に他に移動する前に1つのトランザクションを完了します別のWebサーバーからの要求を取得し、そうしてもシングルスレッドです。ロックはどのように役立ちますか?私が間違っているなら、私を修正してください。 – cyclops

+0

あなたは、全体としてアプリケーションをロックし、自分自身をRedisのではありません。 –

関連する問題