WebファームのASP.NETキャッシュ制限を解決する NCache
Microsoftは、ASP.NETのアプリケーションスコープ内にASP.NETキャッシュオブジェクトを提供しています。これにより、アプリケーションデータをキャッシュし、これらの高価なデータベーストリップを削減できます。 ASP.NETのパフォーマンスを向上させる。 ASP.NETキャッシュの通常の使用方法は次のとおりです。
using System.Web.Caching;
...
string key = "Employee:EmployeeId:1000";
Employee employee = (Employee)Cache[key];
if (employee == null){
// Load Employee from DB & put it in the Cache
LoadEmployeeFromDb(employee);
Cache.Insert(key, employee, null,
Cache.NoAbsoluteExpiration,
Cache.NoSlidingExpiration,
CacheItemPriority.Default, null );
}
WebファームでのASP.NETキャッシュの制限
ASP.NETキャッシュはスタンドアロンのインプロセス(InProc)キャッシュであるため、アプリケーションが負荷分散されたWebファームに展開されている場合、多くの制限があります。 これらの制限は次のとおりです。
- 複数のキャッシュコピーが同期されていません: ASP.NETキャッシュはスタンドアロンであるため、WebガーデンまたはWebファーム内のキャッシュの複数のコピーは相互に同期されません。 そして、これはアプリケーションにとって大きなデータ整合性の問題を引き起こします。
- ワーカープロセスのリサイクル時にキャッシュが失われました: ワーカープロセスがリサイクルされると、すべてのASP.NETキャッシュデータが失われます。 また、データベースからキャッシュ全体を再度リロードする必要があるため、パフォーマンスの問題が発生します。
- キャッシュサイズの問題は制限されています: ASP.NETキャッシュは、ASP.NETワーカープロセスのメモリ制限内に存在する必要があります。これにより、キャッシュのサイズに厳しい制約が課せられます。
- DBを介したキャッシュ同期には問題があります。 ASP.NETCacheのSQLCacheDependencyを使用すると、キャッシュをデータベースと同期できます。 また、データベースを調べて、異なるWebサーバー上のキャッシュの複数のコピーを相互に同期するために使用する人もいます。 ただし、データベースが再びすべてのアクティビティの中心にあり、SQL CacheDependency自体はあまりスケーラブルではないため、これにはパフォーマンスとスケーラビリティの大きな問題があります。
分散キャッシュ(NCache):Webファームのソリューション
NCache は分散キャッシュであり、上記のASP.NETキャッシュのすべての制限を解決します。 これがその方法です NCache これらの制限に対処します。
- Webファームで同期されたキャッシュ: NCache 分散キャッシュ Webファーム内の複数のサーバー間でキャッシュを同期します。 これは、データの整合性の問題がないことを意味します NCache.
- WebガーデンにOutProcをキャッシュする: NCache はアウトプロセスキャッシュであるため、複数のワーカープロセスが共通のキャッシュを共有できます。
- キャッシュサイズは非常にスケーラブルです: NCache ASP.NETワーカープロセスタイプのメモリサイズ制限を設定するだけでなく、 キャッシュサーバーを追加する ストレージ容量を増やすため。 したがって、100GB以上のキャッシュサイズを簡単に設定できます。
- Webファームでの高トランザクションのキャッシュスケール: NCache 分散キャッシュであり、 スケーラブルなキャッシングトポロジ。 これが可能に NCache 問題なくキャッシュクラスターをスケーリングします。
- キャッシュはデータレプリケーションで非常に信頼性があります。 NCache は、大阪で インテリジェントなデータレプリケーション パフォーマンスを犠牲にすることなく。 このデータレプリケーションにより、キャッシュサーバーがダウンした場合でも、データが失われることはありません。 これにより、ASP.NETアプリケーションは、データの損失を心配することなくデータをキャッシュできます。
NCache ASP.NETCacheAPIに加えてその他があります
NCache すべてのASP.NETキャッシュ機能に同一のAPIプラスを提供します。 これにより、次のことが可能になります ASP.NETキャッシュからに移行する NCache シームレスに。 名前空間を変更するのは System.Web.キャッシング 〜へ Alachisoft.NCache.Web.キャッシング キャッシュされているすべてのオブジェクトがシリアル化可能であることを確認してください。
さらに、 NCache ASP.NETCacheにはない多数のキャッシュ機能を提供します。 部分的なリストは次のとおりです。
すべてについてもっと読む NCache 機能を使用.
すばやく使用する方法 NCache?
すぐにメリットを得るには、次の簡単な手順を実行できます。
- インストールを開始する NCache:WebサーバーとXNUMXつのキャッシュサーバー
- キャッシュを作成する:GUIベース NCache マネージャーツール
- アプリケーションデータをキャッシュする NCache:参照する必要があります NCache アセンブリしてから作成します NCache キャッシュから.NETオブジェクトを保存およびフェッチするためのAPI呼び出し
- ASP.NETのパフォーマンスを監視する:ASP.NETのパフォーマンスを監視できるようになりました。 NCache パフォーマンス。 NCache 監視するためのPerfMonカウンターの豊富なセットを提供します
次はどうする?