0

ASP.NET Web アプリケーション (1 つのインスタンス) に対して最大 1 時間、非常に少量のデータをキャッシュする必要があります。明らかに、これはスレッドセーフである必要があるため、リクエスト内からキャッシュにアクセスできます。

これを「進行中」に行い、外部のものは使用したくありません。

これを実装する最も簡単な方法は何でしょうか?

4

2 に答える 2

1

ASP.NET が提供するCacheオブジェクトを使用できます。

存在する場合はキャッシュされたオブジェクトを返し、そうでない場合はdbから取得するプロパティを作成できます。

  private myClass myProp {
    get{     
        if (Cache["Key1"] == null)
            Cache.Add("Key1", "Value 1", null, DateTime.Now.AddMinutes(60), Cache.NoSlidingExpiration, CacheItemPriority.High);
        return (myClass)Cache["Key1"];
        }
    }
于 2013-10-22T11:34:30.410 に答える
1

静的変数を使用します。更新ロジック (最大 1 時間)を含む静的キャッシュ クラスを記述し、取得したデータを静的メンバーに格納できます。

クラスは、リサイクルされるまでアプリ プールに保持されます。これは、ユースケースに対して頻繁すぎるか、またはめったにない可能性があります。しかし、キャッシング能力は十分に公平でなければなりません。

スレッド セーフの問題については、このクラスで getter メソッドを提供し、lockstatementを利用できます。

于 2013-10-22T10:45:50.803 に答える