ASP.NET、ASP.NET アプリケーションに情報をキャッシュするプログラミング機能を提供します。 この機能はアプリケーションオブジェクトに似ていますが、アプリケーションのライフ期間中、キャッシュ情報を動的に維持する能力 ASP.NET 備えています。 アプリケーション内でデータをキャッシュすることで、データはサーバーにローカル存在し、迅速に取得できるため、パフォーマンスを大幅に向上させます。 元のデータソースを再クエリする代わりに。 特に現行システムの最大のボトルネックはデータベースであり、キャッシュの合理的な活用は多くの不要なデータベースアクセスを減らし、システムのパフォーマンスを最適化できます。
キャッシュオブジェクトは、管理アプリケーションの他のユーザーや ASP.NET 自身がキャッシュ内のキャッシュ項目に対してアクションを行えるようにする関連性ベースの有効期限通知やコールバック通知の実装能力を向上させます。 Cacheオブジェクトを使って、任意の型(値型やアプリケーション型)を更新または削除前に保存します。 キャッシュはアプリケーションオブジェクトよりも柔軟なオブジェクトです。 以下を支えています:
1. 関連性ベースの期限切れおよび削除 - キャッシュオブジェクトは、キャッシュ値の自動期限切れと削除をファイルイベント、特定または相対的な日付・時刻、または他のキャッシュキーに割り当てる機能を提供します。
2. 自動ロック管理 - キャッシュオブジェクトには内部ロック管理が含まれており、計算操作で挿入可能な原子更新(更新)の同期を提供します。
3. コールバック機構 - キャッシュオブジェクトは、キャッシュアイテムを削除する際にコールバック関数を呼び出しる設定機能を提供します。
キャッシュ追加メソッドにはAdd()またはInsert()が含まれ、Insertメソッドはオプションパラメータを使ってデフォルトパラメータの両方を使ってキャッシュを追加できます:
Cache.Add(KeyName, KeyValue, Dependencies, AbsoluteExpiration, SlidingExpiration, Priority, CacheItemRemoveCallback);
パラメータは、キャッシュ名、キャッシュされたオブジェクト、依存関係、絶対有効期限、相対有効期限、優先度、そしてキャッシュの有効期限によって引き起こされるイベントです。
キャッシュ依存関係:ファイル依存関係、その他のキャッシュ依存関係、データベース依存関係、有効期限メソッドを設定し、依存関係が変更されるとキャッシュは無効となり、特定のイベントを発生させることがあります。
1. ファイル依存関係:xmlファイルへのキャッシュ依存:
- <p>DataSet dsProducts = new DataSet();</p><p>//...dsProducts数y据Y</p><p>CacheDependency fileDepends = new CacheDependency(Server.MapPath("Northwind.xml"));</p><p>Cache.Insert("dsProducts", dsProducts, fileDepends);</p>
コードをコピーします
2. その他のキャッシュアイテム依存関係:
- <p>object cacheData;</p><p>string[] fileDependsArray = { Server.MapPath("Northwind.xml") };</p><p>string[] cacheDependsArray = { "Depend0", "Depend1", "Depend2" };</p><p>CacheDependency cacheDepends = new CacheDependency(fileDependsArray, cacheDependsArray);</p><p>Cache.Insert("cacheName", cacheData, cacheDepends);</p>
コードをコピーします
3. 有効期限の設定:
AbsoluteExpirationはキャッシュの絶対有効期限を設定でき、例えば30分後に有効期限に設定することができます。
- Cache.Insert("cacheName ", "cacheValue", null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration);
コードをコピーします NoSlidingExpirationは相対的な有効期限を設定することができ、NoSlidingExpirationが設定した時間内にキャッシュにアクセスできない場合、キャッシュが期限切れで一定期間アクセスされなければ、キャッシュは有効期限にならない。 30分以内にキャッシュにアクセスした場合、期限切れはありません:
- Cache.Insert("cacheName", "cacheValue", null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30));
コードをコピーします
|