私はDistributed LockとRedisの初心者です。私はRedisがシングルスレッドサーバーだと聞いたことがあります。だから私の質問はなぜ我々はレディスが必要なのですか?例えば、第2のスレッド(クライアントBが開始)は、第1のスレッド(クライアントAが開始された)の動作が達成されるまで前のスレッドを中断しない。両方のスレッドが同じデータで作業しています。私は何かを欠場する必要があることを知っていた。親切に私を訂正するのを助けてください。ありがとう。Redisで分散ロックが必要な理由
0
A
答えて
1
私は、分散ロックはレアリス自体についてではないと考えています(本当にそのシングルスレッドかどうかは気にするべきではありません)。
「通常の」(分散されていない)ロックはクリアされますが、単一のJVMのマルチスレッドアプリケーションで動作します。
「分散型」という言葉は、多くのJVMのあるリソースへのアクセスを同期する方法を追加し、クリティカルセクションを実行するJVMは1つだけです。
ここで紹介したように、「SET」コマンドでロックを実装することは可能ですが、そのような実装の根本的な問題は、レディス自体の単一の障害点です。多くの独立したレディス・マシンの状態に基づいてロックを取得するためのRedlockアルゴリズムについて説明します。このうち、Redis自体がシングルスレッドであるのかマルチスレッドであるのかはまったく気にしません。
これだけです。 ほしいと思っています。
関連する問題
- 1. Spring + Hibernate + Redisの分散ロック
- 2. セマフォでロックを使用する必要がある理由
- 3. TextWatcherが必要な理由
- 4. RIAが必要な理由
- 5. "rec"が必要な理由
- 6. Azureテーブルストレージ - 分散ロック
- 7. メテオでパッケージインポートが必要な理由
- 8. WPFでAutomationPropertiesが必要な理由
- 9. I2Cでクロックストレッチが必要な理由
- 10. random.choiceのリストが必要な理由
- 11. HerokuにResque 1.22.0が必要な理由
- 12. AMQPにmessageIdが必要な理由
- 13. カスタムディレクティブにBindToControllerが必要な理由
- 14. RVMにYAMLが必要な理由
- 15. rvmにログインシェルが必要な理由
- 16. Google Analytics UTMが必要な理由
- 17. ECUキャリブレーションが必要な理由
- 18. JDBC-ODBCにドライバが必要な理由
- 19. Dockerにユニオンファイルシステムが必要な理由
- 20. 識別子が必要な理由
- 21. refrehアクセストークンのリフレッシュトークンが必要な理由
- 22. mongodb getSisterDBが必要な理由
- 23. ハードリンクとソフトリンクが必要な理由
- 24. GAE/Jの分散ロック
- 25. return文が必要な理由を理解できない
- 26. Redisが遅くなる理由
- 27. EJB、RMI、クラスタリングが処理を分散する必要があります
- 28. System.Runtime.Caching.MemoryCache - ロックが必要です
- 29. 分散ロックと制御フローの制約違反例外処理
- 30. Javaで異なるクラスローダーが必要な理由
ああ...記事を載せています。 '分散ロックは、異なるプロセスが相互に排他的な方法で共有リソースで動作する必要がある多くの環境で、非常に有用なプリミティブです。それは本当に '複数のプロセス'を述べました。 'Multiple threads'だけではありません。 –
正確です。 DLを必要とする理由の例を以下に示します。そして、そのdbで動作するレポートを作成したいとし、2人のユーザーが同時にレポートを作成しようとすると、悪いことが起こることを知っています。さて、あなたのアプリがクラスタで実行されているので、どのマシン(データベースを保護しているか)に関係なく、一度に1つのレポートしか作成されないことを保証する必要があります。したがって、分散ロックがここで役立ちます。 –
「単一インスタンスで実装を修正する」の部分で、単一インスタンスは何を意味しますか?これは、「マスタースレーブ」フェールオーバーパターンを意味しますか?ありがとう。 –