その他にもたくさんのグーグルの ASP.NET 今日のアプリケーションはトラフィックが多く、何万人ものユーザーが使用しています。 これらのアプリケーションは、特にネットワーク トラフィックが多い場合にデータベースへのアクセスが遅くなるため、パフォーマンスの問題に直面します。 何千ものユーザーがこれらのアプリケーションにアクセスしているため、このレイテンシーは今や手に負えなくなりつつあります。
このパフォーマンスの制約を解決するために、ASP.NET と ASP.NET Core は、「ASP.NET キャッシュ」と呼ばれる組み込みのキャッシュ メカニズムを提供します。このメカニズムは、アプリケーション データをメモリに格納してアクセスを高速化し、データベースのトリップを削減します。 したがって、アプリケーションのパフォーマンスが向上します。
NCache 詳細 ASP.NETのパフォーマンス .NET Core
組み込みのASP.NETキャッシュには制限があります
ただし、組み込みの ASP.NET キャッシュは、ASP.NET アプリケーションのワーカー プロセス内に存在するスタンドアロンのインプロセス キャッシュであるという問題があります。 そのため、単一サーバー環境でのみ有効です。
ASP.NETキャッシュの制限のいくつかを次に示します。
- 同期されていない複数のキャッシュインスタンス: ASP.NETキャッシュはASP.NETアプリプロセスの一部であるため、複数のASP.NETアプリで実行されているキャッシュインスタンスの同期は許可されません。 これにより、データの整合性の問題が発生します。
- NETワーカープロセスのリサイクル: ASP.NETキャッシュは処理中であるため、ASP.NETワーカープロセスがリサイクルされると、キャッシュされたすべてのデータが失われます。 次に、キャッシュをデータソースから再ロードする必要があり、パフォーマンスが大幅に低下します。
- 限られたワーカープロセスのメモリサイズ: ASP.NETキャッシュは、ASP.NETアプリのワーカープロセスの一部です。 したがって、キャッシュに使用するこのプロセスのメモリは限られています。
解決策:分散キャッシュを使用したASP.NETキャッシュ
ASP.NETキャッシングのこれらの制限に対抗するには、次のような分散キャッシュが必要です。 NCache これは、複数のサーバー上の独自のプロセスに存在し、Webファーム内のキャッシュを同期するメカニズムも提供します。
このような分散キャッシュの方法は次のとおりです。 NCache ASP.NETキャッシングの問題を解決します。
- 分散キャッシュは、複数のASP.NETアプリインスタンスによって作成されたすべてのキャッシュインスタンスを同期し、データの整合性の問題を解決します。
- これはアウトプロセス(アウトプロセス)キャッシュであるため、複数のサーバーおよびワーカープロセスで共有できます。
- プロセスの制限がないため、スケーラビリティが高いため、必要なだけメモリを使用できます。 また、必要な数のキャッシュサーバーを使用できます。
- ASP.NETアプリのキャッシュサーバーをリアルタイムでスケーリングできます。
- NCache また、パフォーマンスの問題がなく、高度にインテリジェントなデータ複製システムを備えています。 効率的なデータ複製機能により、データ損失の問題が発生することなく、安心してご利用いただけます。
NCache 詳細 ASP.NETのパフォーマンス ASP.NET Core 性能
分散キャッシュでASP.NETキャッシングを使用する方法は?
NCache を取得するために使用できるさまざまな種類のキャッシュを提供します。 ASP.NET キャッシュを使用してアプリを起動して実行します。
アプリのデータキャッシュ
データソースから頻繁にフェッチする必要があるアプリデータは、データキャッシュを使用して、ASP.NETアプリケーションにキャッシュし、この頻繁にアクセスされるデータの応答時間を短縮できます。 これには、以下の例に示すように、Productクラスオブジェクトなどのカスタムオブジェクトデータが含まれます。 Productオブジェクトは、データベースから初めてフェッチされてからキャッシュに追加され、次にデータにアクセスするときにキャッシュからフェッチされます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using Alachisoft.NCache.Client; ... ICache _cache = CacheManager.GetCache("demoCache"); string key = "Product:1001"; // Search for key in cache var result = _cache.Get<string>(key); // If it doesn't exist, fetch from DB and add to cache if (result == null) { var product = LoadProductFromDB(1001); CacheItem item = new CacheItem(product); _cache.Add(key, item); } |
NCache 詳細 ASP.NET キャッシュ ASP.NET Core セッションズ
ASP.NETセッション状態のキャッシュ
あなたが使用することができます セッションキャッシング ASP.NET アプリケーションのユーザー関連データを格納します。 セッション データは、ASP.NET アプリでのユーザー操作に属します。 たとえば、e コマース ビジネスでは、ASP.NET キャッシュがダウンした場合にセッションを失うわけにはいきません。 したがって、プラグインすることができます NCache データの損失を防ぐためにASP.NETアプリケーションに追加します。
使用するには NCache ASP.NETキャッシングの場合、プログラミング作業は必要ありません。 次の構成をに追加するだけです Web.config アプリケーションの:
1 2 3 4 5 6 7 8 9 |
... <assemblies> <add assembly ="Alachisoft.NCache.SessionStoreProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </assemblies> ... |
セッション状態の構成を変更して、ASP.NETでセッション状態のキャッシュを有効にします。 の web.config 次のセクションを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<configuration> ... <sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" cacheName="demoCache" sessionAppId="NCacheApp" exceptionsEnabled="true" writeExceptionsToEventLog="false" enableLogs="false" enableSessionLocking="true" sessionLockingRetry="-1" emptySessionWhenLocked="false" /> </providers> </sessionState> ... </configuration> ... |
NCache 詳細 ASP.NETセッションキャッシング ASP.NETセッションキャッシングドキュメント
ASP.NET View State キャッシング
ASP.NET View State クライアント側の状態管理メカニズムを提供します。 これは、クライアント要求の完全なラウンドトリップ間でページと制御値を保持するのに役立ちます。 保存できます ASP.NET view state Webサーバー上で、一意のIDをブラウザに送り返します。 このIDは正しいものを見つけます ASP.NET view state キャッシュ内。
達成 ASP.NET view state キャッシュイン NCache とても簡単です。 これは、に追加する必要がある構成の一部です。 Web.config ASP.NETアプリケーションの:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <ncContentOptimization> <settings viewstateThreshold="12" enableViewstateCaching="true" enableTrace="false" groupedViewStateWithSessions="false" maxViewStatesPerSession="5" > <cacheSettings cacheName="demoCache"> <expiration type="None" duration="100" /> </cacheSettings> </settings> </ncContentOptimization> ... |
NCache 詳細 ASP.NET View State キャッシング NCache ドキュメント
ASP.NET出力キャッシュ
頻繁にアクセスされる Web ページについては、次を使用できます。 出力キャッシュ これらの特定のページの応答時間を改善します。 ASP.NET の出力キャッシュ システムは、クエリ文字列パラメーターやブラウザーの種類などのさまざまなパラメーターに応じて、さまざまなバージョンのページのコンテンツをキャッシュします。
次のコマンドで出力キャッシュを有効にできます NCache ASP.NETアプリケーションで、コードを変更せずに、次のプラグを差し込むだけです。 Web.config:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <caching> <outputCache defaultProvider ="NOutputCacheProvider"> <providers> <add name="NOutputCacheProvider" type= "Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=cff5926ed6a53769" cacheName="demoCache" exceptionsEnabled="true"enableDetailLogs="false" enableLogs="true" writeExceptionsToEventLog="true"/>" </providers> </outputCache> </caching> ... |
NCache 詳細 NCache 出力キャッシングドキュメント ASP.NET出力キャッシュ
まとめ
要約すると、次のような分散キャッシュ NCache ASP.NETでのキャッシュを処理するために、拡張性と信頼性が高く、パフォーマンスが最適化されています。 ASP.NETキャッシングのすべての制限を克服するために必要なすべての機能を備えており、ASP.NETキャッシングを気にせずに単独で処理できる唯一の分散キャッシュです。 で利用可能なキャッシングのすべてのフレーバーで NCache、パフォーマンスの向上を保証することにより、アプリケーションが必要とするあらゆるタイプのデータを簡単にキャッシュできます。
とても良い記事、ロン。 ASP.NETキャッシングについて詳しく説明します。 分散キャッシュ NCache 信頼性が高く、ASP.NETのパフォーマンスが向上します。 ASP.NETキャッシングの制限を克服するのに役立ちます。 この記事では、分散キャッシュを実行する方法を明確に示しています。