ASP.NETは現在、Webアプリで非常に人気のあるテクノロジになり、トラフィックの多いアプリケーションを開発する人が増えています。 より高いトラフィックを処理するために、これらのASP.NETアプリは、トラフィックの負荷が増加するにつれてサーバーを追加できる負荷分散されたWebファームに展開されます。
しかし、問題が発生します。 データベースとデータストレージを同じように拡張して、より高いトラフィック負荷を処理することはできません。 したがって、ASP.NETアプリケーションの速度が低下し、停止する可能性さえあるボトルネックが発生します。 このような状況では、データキャッシュは、このデータベースとデータストレージのボトルネックを解決するための優れた方法です。 キャッシングを使用すると、アプリケーションデータを近くに保存し、これらの高価なデータベーストリップを減らすことができます。
NCache 詳細 NCache ドキュメント ASP.NET キャッシュ
ASP.NETキャッシュとは何ですか?
ASP.NETキャッシュを使用すると、アプリケーションデータをキャッシュでき、次の機能を含むかなり機能豊富なキャッシュです。
- 有効期限: 自動アブソリュートおよびスライディング 有効期限.
- CacheDependency: キャッシュ内のデータ関係を管理します。
- SqlCacheDependency: キャッシュをデータベースと同期します。
- コールバック: キャッシュ内のアイテムが更新されたときに通知されます。
ASP.NETキャッシュの使用法を示すサンプルコードを次に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="kwrd">using</span> System.Web.Caching; <span class="rem">// Create a key to lookup in the cache</span> <span class="rem">// The key for will be like “Employees:PK:1000”</span> <span class="kwrd">string</span> key = <span class="str">"Employee:EmployeeId:"</span> + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; <span class="kwrd">if</span> (employee == <span class="kwrd">null</span>) { <span class="rem"> // item not found in the cache. load from db</span> LoadEmployeeFromDb(employee); <span class="rem"> // Now, add it to the cache for future reference</span> Cache.Insert(key, employee, <span class="kwrd">null</span>, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, <span class="kwrd">null</span> ); } |
WebファームでのASP.NETキャッシュの制限
非常に便利なキャッシュ機能にもかかわらず、ASP.NETキャッシュにはいくつかの重大な制限があります。 それらのいくつかを以下に示します。
- サーバーまたはワーカープロセス間で同期しません: NET Cacheは、複数のサーバー間、または複数のワーカープロセス間でさえ同期しません。 したがって、データが読み取り専用でない限り、WebファームやWebガーデンで使用することはできませんが、頻繁に変更されるデータを含むすべての種類のデータをキャッシュする必要があります。
- キャッシュサイズの制限: ASP.NETキャッシュを、32つのASP.NETワーカープロセスに含めることができるサイズより大きくすることはできません。 1ビットシステムの場合、これは64GBであり、アプリコードも含まれます。 XNUMXビットシステムの場合でも、サイズを拡張することはできません。
ASP.NETキャッシュ互換の分散キャッシュを使用する
これらを回避する方法 ASP.NETキャッシュの制限 次のような分散キャッシュを使用することです NCache Webファーム用。 NCache ASP.NETキャッシュと同じ機能に加えてさらに多くの機能を提供します。 しかし、分散キャッシュとして、 NCache 複数のサーバー間で簡単に同期できます。 ここにあなたが得るいくつかの利点があります NCache:
- スケールのトランザクション負荷は非常にうまくいきます。 Webファームが2台から200台に増えても、キャッシュクラスターにキャッシュサーバーを追加し続けることができます。 NCache より多くのトラフィックを処理する際のボトルネックになることはありません。
- スケールのデータストレージはうまく: キャッシュサーバーを追加すると、次の理由でキャッシュストレージ容量が増加します。 パーティションキャッシュトポロジ.
- 信頼性のためにデータを複製します。 データが他のサーバーに複製されるため、サーバーがダウンした場合でもデータが失われないようにすることができます。
- 動的自己修復キャッシュクラスター: NCache これにより、100%の稼働時間を提供します。 また、キャッシュやアプリケーションを停止することなく、実行時にキャッシュサーバーを追加または削除できます。
まとめ
WebファームでASP.NETアプリケーションを実行している場合は、 NCache そして、それがアプリケーションのパフォーマンスとスケーラビリティの向上にどのように役立つかを確認してください。
あなたはいつでも私たちにメールを送ることができます sales@alachisoft.com
優れた記事に感謝します。 とにかく、どうやってコミュニケーションをとることができますか?
私は使った NCache 私のプロジェクトのXNUMXつで、結果は非常に印象的でした。 強くお勧めします !!!