MVC MVCキャッシュバッファsqlCacheDependencyモニタデータの変更

MVCのキャッシング

 

MVCのための制御キャッシュとアクションのキャッシュを持っています。

 

、コントロールキャッシュ

すべてのコントロールアクションの下で、全体の制御に適用される制御バッファ・キャッシュは、キャッシュされます。

    [OutputCache(期間= 10)] 
    パブリッククラスにHomeController:コントローラ
    { 
      
        // GET:ホーム
        公共のActionResultインデックス()
        { 
            ViewBag.CurrentTime = DateTime.Now; 
            ビューを返します(); 
        } 
    }
@ { 
    ViewBag.Title = "インデックス"。
} 

<H2> ViewBag.CurrentTime @ </ H2>

常にページを更新し、時間は10秒ごとに更新されます。

二、アクションキャッシュ

キャッシュ負荷のアクションは、これだけの追加のキャッシュ・アクションのキャッシュは他のアクションを持っています。

第三に、設定ファイルのキャッシュ設定を使用して

MVCのWeb.configファイルでは、コンフィギュレーションキャッシュを行うことができます。

system.webノードでは、子ノードのキャッシュを追加し、次ました。

<outputCacheSettings> 
        <outputCacheProfiles> 
          の<add名= "TestConfigCache"期間= "10" /> 
        </ outputCacheProfiles> 
 </ outputCacheSettings>
        [OutputCache(CacheProfile = "TestConfigCache")] 
        // GET:ホーム
        公共のActionResultインデックス()
        { 
            ViewBag.CurrentTime = DateTime.Now; 
            ビューを返します(); 
        }

第四に、キャッシュの依存関係

 キャッシュされたデータは、データテーブルを対応するデータベースが変更された場合、更新され、その後、我々は適切なを持っているデータベースのテーブルから取得され、データベーステーブル内の対応するデータが変更されていない場合、我々は、データをキャッシュする必要はありません。キャッシュデータをすぐに更新する必要があります。

そして、キャッシュの有効期限が切れている、データテーブルには、対応するデータベースが変更された上で依存しています。これは、キャッシュの依存関係です。約書いてみましょう。

次のように我々は、MVCでWeb.configファイルが構成されていませんしました。

図1に示すように、第一の構成データベース接続文字列:

<のconnectionStrings> 
    <追加名= "sqlCon"れたconnectionString = "サーバ= 127.0.0.1;データベース=テスト; UID = SAと; PWD = 123456" providerNameで= "System.Data.SqlClientの" /> 
  </のconnectionStrings>

2、コンフィギュレーション・キャッシュの依存関係:

<キャッシュ> 
      <sqlCacheDependency> 
        <データベース> 
          の<add名= "PersonCacheDependency"のconnectionStringName = "sqlCon"ポールタイム= "500" /> 
        </データベース> 
      </ sqlCacheDependency> 
      <outputCacheSettings> 
        <outputCacheProfiles> 
          <名を追加= "TestConfigCache"期間= "3600" sqlDependency = "PersonCacheDependency:人" /> 
        </ outputCacheProfiles> 
      </ outputCacheSettings> 
    </キャッシング>

 

ポールタイムは、データベース内の時間間隔の変化を聞いて、前記(ミリ秒)

上記の構成の説明:ライブラリ名:テスト、監視テーブル名:人。キャッシュ時間:3600秒は1時間です。サイクリン依存性データベース500ミリ秒、すなわち、0.5秒ごとに変更はすぐにキャッシュを更新する場合、データベースは、変更されたかどうかを監視します。

コントロールやアクション:

       [OutputCache(CacheProfile = "TestConfigCache")] 
        // GET:ホーム
        公共のActionResultインデックス()
        { 
            ViewBag.CurrentTime = DateTime.Now; 
            ビューを返します(); 
        }

これは、時間以内に、Personテーブルの変更のデータだけが、キャッシュが更新されます後は、そうでない場合はキャッシュが更新されません。

五、注:

我々はキャッシュを設定するので、私たちのプロジェクトを実行が終了したら、それはエラーメッセージを表示されることがあります。

 

私たちは、Personテーブルにキャッシュ通知を有効にしないためです。

コマンドラインツール対オープン、タイプ:aspnet_regsql -S localhostの-U saの-P 123456 -dテスト-et -t人を-ed

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/sxjljj/p/11480455.html