ローカルキャッシュ
NCache 単一ノード上に存在するスタンドアロンの非クラスター化キャッシュをサポートします。ローカル キャッシュは、他のクラスター化キャッシュと機能が似ています。つまり、他のキャッシュ トポロジで提供されるすべてのキャッシュ機能を備えていますが、クラスター化キャッシュのようなスケーラビリティや耐障害性はありません。これは単一サーバー キャッシュであるため、複数のサーバーを追加してもトランザクション容量を増やすことはできません。また、単一のキャッシュ インスタンス (バックアップやレプリカはなし) が作成されるため、キャッシュ インスタンスがダウンすると、キャッシュされたデータはすべて失われます。ローカル キャッシュは、クライアント数が少なくアクティビティが少ないアプリケーション、またはアプリケーションが大量のデータをキャッシュする必要がないアプリケーションに適しています。
ローカル キャッシュの分離レベル
ローカル キャッシュには次の XNUMX つの分離レベルがあります。
InProc(処理中)
この分離レベルは、キャッシュがクライアント アプリケーションのメモリ空間内に存在することを意味します。このタイプのキャッシュはアプリケーション プロセス内に存在するため、応答時間が速くなります。 InProcでは、 NCache キャッシュされたデータをライブ オブジェクト (シリアル化された形式ではない) として保持するため、シリアル化/シリアル化解除のコストが削減されます。 ただし、アプリケーションとキャッシュは同じメモリを共有するため、このようなアプリケーションはメモリ制限に直面する可能性があります。 また、この場合のキャッシュされたデータは、このプロセスの外で実行されているアプリケーションと共有することはできません。
オブジェクトはキャッシュ クライアントと同じアドレス空間に格納されるため、キャッシュ クライアントはコピーではなくキャッシュされたオブジェクトへの参照を取得します。複数のスレッドが同じオブジェクトを変更するマルチスレッド アプリケーションの場合、これらの変更は、 .NET framework.
Note
オブジェクトは InProc キャッシュ内にシリアル化された形式で保持されませんが、すべてのオブジェクトを次のようにマークする必要があります。 Serializable
. NCache オブジェクトをシリアル化することでオブジェクトのサイズを計算します。これは、後で必要なときにエビクションするのに役立ちます。
OutProc(アウトプロセス)
この分離レベルは、キャッシュが別のプロセス ( NCache サービスプロセス) をクライアントアプリケーションから実行します。 複数のクライアント (ローカルおよびリモート) が同じキャッシュに接続してデータを共有できます。 この場合、プロセス外部の通信コストにより、レイテンシーは InProc キャッシュよりも大きくなります。
OutProc ローカル キャッシュは、アプリケーション内の複数のクライアントが同じキャッシュ データにアクセスする必要がある場合に適しています。たとえば、各 ASP.NET アプリケーションが個別のワーカー プロセスで実行される Web ガーデンでは、OutProc キャッシュを使用する必要があります。また、ASP.NET アプリケーションでは、プロセス メモリの制限のため、InProc キャッシュ インスタンスの使用は最良のオプションとは見なされません。ただし、アプリケーションプロセス間でデータを転送するオーバーヘッドが発生することに注意してください。 そしてキャッシュ自体。
も参照してください
キャッシュトポロジ
キャッシュクラスター
キャッシュクライアント
クライアントキャッシュ
WANレプリケーション用のブリッジ