32

Asp.net mvc 4 (c#) を使用して独自の cms を構築し、いくつかのデータベース データをキャッシュしたい: ローカリゼーション、検索カテゴリ (ロングテールであり、各カテゴリには独自のサブおよびサブサブ カテゴリがあります) など..

ページ要求ごとに 30 ~ 100 を超えるクエリが発生する可能性があるため、常にデータベースにクエリを実行するのはやり過ぎですが、ユーザーがこれらのデータベースを更新することはめったにありません。

では、それを行うための最良の方法 (パフォーマンスと利便性) は何ですか?

アクションの OutputCache の使用方法は知っていますが、この状況で必要なものではなく、html をキャッシュする必要がありますが、たとえば、自分のヘルパー@html.Localization("Newsletter.Tite")が言語の値を取得するか、別のヘルパーがデータなどとやり取りする

アプリケーションが初めて呼び出されたときにのみ、必要なデータをキャッシュしてからキャッシュの場所を操作する必要があると思いますが、それについても経験がありません。

4

3 に答える 3

39

ビルトインを使用MemoryCacheして、データベースから取得した結果セット全体を保存できます。

典型的なパターン:

MyModel model = MemoryCache.Default["my_model_key"] as MyModel;
if (model == null)
{
    model = GetModelFromDatabase();
    MemoryCache.Default["my_model_key"] = model;
}

// you could use the model here
于 2013-07-15T11:31:17.380 に答える