1

db内のオブジェクトを操作する管理アプリケーションと、主にこれらのオブジェクトを表示するためのパブリックasp.netmvcアプリケーションがあります。

HttpRuntime.Cacheを使用する、いくつかのオブジェクトの単純なキャッシュを実装しました。

管理アプリケーションからパブリックアプリケーションのキャッシュの一部を無効にしたい。

最も簡単な解決策は、呼び出されたときにキャッシュ内のすべてのレコードをクリアするClearCache()アクションを作成することでした。

しかし、キャッシュの依存関係を使用するキャッシュを利用する方が良いのではないでしょうか。どちらをどのように使用するのが最適かわかりません。SQLの依存関係について考えていましたが、SQLクエリをスキップするためにキャッシュを実行しているため、これが高速かどうかはわかりません。

SQLキャッシュの依存関係のチェックは遅いですか?多くの場合、キャッシュされたオブジェクトを使用したいのですが、毎回SQLの依存関係をチェックするのはよくありません。

4

2 に答える 2

1

これには CacheDependency を使用できます。

2 つの別々のアプリケーションがある場合。ファイル依存オプションを使用できます。(キャッシュキー依存オプションもあります)

アプリケーションから特定のファイル (単なる空のファイルの場合もあります) をタッチしたとき。同じファイルに依存する他のアプリケーション キャッシュ アイテムは、自動的に期限切れになります。

さまざまなファイルを使用して、さまざまなカテゴリのキャッシュ アイテムを期限切れにすることができます。

于 2012-02-17T13:16:43.940 に答える
0

テーブルごとにSQL依存関係キャッシュを設定するか、一緒に処理されると想定されるレコードのクエリを選択することをお勧めします。一部のパーティションに個別のキャッシュエントリを作成することを検討できます(たとえば、国固有のデータがある場合は、適切なSQL依存関係を持つ個別のキャッシュエントリに各国のデータを保持します)。

于 2011-12-18T09:38:30.767 に答える