概要 †ASP.NET には、キャッシュ制御を容易にするための方法
キャッシュ以下のところに格納できます。
出力キャッシュ †従来では、異なるパラメータでも同じURLなら、ひとつのキャッシュに保存、ASP.NET では、同じURLでも異なるパラメータなら、別々のキャッシュに保存する フラグメントキャッシュ †ページの一部(フラグメント)のみキャッシュする データキャッシュ †データをサーバーのメモリから直接に読み込めます。 データベースキャッシング †キャッシュの作成元となっているテーブル(データベース)に変更があったタイミングでキャッシュデータをリフレッシュする機能。データベースキャッシングを利用することで、データソースは更新されたのにキャッシュは古い情報のまま残ってしまう、といったようなデータの不整合を解消することができます。 ※定期的に現在のキャッシュとデータベースと照合して、キャッシュデータを最新にする方法で、キャッシュが最新のことを保証しますので、頻繁にリフレッシュすると、ためメモリ・リソースを浪費する分、キャッシュの効果は得にくいです。 一般的に以下の場合に、データキャッシュを利用する
データベース上でキャッシュ機能を有効にする aspnet_regsql.exe -S .\SQLEXPRESS -E -d [データベース名] -ed aspnet_regsql.exe -S .\SQLEXPRESS -E -d [データベース名] -t Album -et Web.config の設定 <system.web> <caching> <sqlCacheDependency enabled="true" pollTime="5000"> <databases> <add name="MyCache" connectionStringName="MyDBCache" /> </databases> </sqlCacheDependency> </caching> pollTime属性は、キャッシュ対象のテーブルに対して変更を確認する時間間隔をミリ秒単位で指定します。デフォルトは1分で、500ミリ秒未満の設定はできません。 <%@ OutputCache Duration="120" VaryByParam="None" SqlDependency="MyCache:[対象テーブル]" %> 依存関係 †時間依存 †
経過時間 有効期限オプションを使用して、最長 10 分間 ProductData DataSet を Cache に保存できます。ProductData への要求が 10 分以内に行われる限り、データはさらに 10 分間有効になります。 ' 10 分間の時間間隔 Dim span As New TimeSpan(0,10,0) Cache.Insert("ProductData", LoadDataSet(), nothing, nothing, span) ファイル依存 †ファイルのデータを読み込んで、Cacheに保存する際に、ファイルの中身が変更されたら、Cacheが無効になります。 Dim dependency as new CacheDependency(Server.MapPath("product.xml")) Cache.Insert("ProductData", dom, dependency) キー依存 †複数のオブジェクトA、B、Cを別々キーでCacheに格納している場合、A、B、Cは依存関係があり、A、B、Cいずれのオブジェクトの値が変更されたら、その他の二つのキャッシュも無効になります。 Dim dependency (1) As String dependencyKey(0) = "ProductData" Dim productDataDependency As new CacheDependency(nothing, dependencyKey) Cache.Insert("SalesData", LoadDataSet("Sales"), productDataDependency) まとめ †Cacheオブジェクトを利用する前に常にオブジェクトが存在するかどうかを確認する Public Function GetProductData() As DataSet If (IsNothing(Cache("ProductData")) Then Cache("ProductData") = LoadDataSet() Return Cache("ProductData") End Function ウィジェット型CM動画配信サービス manna [マナ] コメント: |