11

分散キャッシュの基本概念とその使用法を理解しようとしています。

まず、分散キャッシュは、すべてのクライアントに対して 1 つの大きなキャッシュとして一緒に機能するマシンのクラスターですか? それとも、クライアントがローカル キャッシュを保持し、1 つのコーディネーターが、ローカル コピーを同期する方法を示す更新をすべてのクライアントに送信するだけですか?

第 2 に、キャッシュがキャッシュされたデータを保持する分散型マシンのセットである場合、クエリを DB に直接送信せず、ネットワーク経由でキャッシュにリクエストを送信するのはなぜでしょうか? パフォーマンスのオーバーヘッドは似ていると思います...

最後に、分散キャッシュの主なメリットは何ですか?つまり、人々が従来のローカル キャッシュ モデルに固執しないのはなぜですか?

あなたが提供するかもしれないすべての答え/リソースに感謝します.

4

2 に答える 2

4

2番目の質問に答えるには(Ryan1234への回答に基づいて):はい、キャッシュサーバーに接続する必要があります。DBがある場合は、それに接続する必要がありますが、「データがある場所」パフォーマンスの違いを生む"部分から取得されます。そのため、DB はディスク ベースであり、分散キャッシュは RAM/メモリ ベースです。顧客がキャッシュに依存している理由は、接続に関して DB のリソースが限られているためです。接続が増え、DB への呼び出しが増えるほど、パフォーマンスが低下し、DB がボトルネックになります。DB へのこのストレスを軽減するために、キャッシング層が「上」に置かれます。頻繁にアクセスされるオブジェクトをメモリに保存し (アプリケーションがトランザクションか参照かに応じて)、アプリケーションはこれらのオブジェクトを取得するために DB にアクセスする必要がなくなりました。キャッシュの重要な機能の 1 つは、アプリケーションの負荷が増加したり、アプリケーションがスケーリングしたりすると、線形にスケーリングできることです。したがって、基本的には、キャッシュ層にサーバーを追加できます。これらのサーバーはメモリ リソースをプールし、パフォーマンスを向上させます。

質問の 2 番目の部分は、ローカル キャッシュと分散キャッシュに関するものです。アプリケーションが必要とするデータのサブセットをアプリケーションと同じサーバーに保持する「クライアント キャッシュ」を提供するNCacheのようなキャッシュ ソリューションがあるため、アプリケーションはネットワーク呼び出しを介して行う必要がありません。同時に、このクライアント キャッシュはメイン キャッシュとの同期が保たれます。

詳細については、「分散キャッシュを使用したスケーラブルな WCF アプリケーション」を参照してください。

于 2013-05-29T10:16:29.487 に答える