フロントエンドのパフォーマンスを向上させるために、Web アプリケーションにサーバー側キャッシュを実装する任務を負っています。目的は、SSAS キューブでの MDX クエリから生成された大規模なデータセットをキャッシュすることです。キャッシュは、キューブが毎日処理される午前 0 時に期限切れになります。Cache.NET API を使用することにしたので、次のようにしました。
Cache.Insert("MDXResult", myMDXDataSetThatExpiresAtMidnight, null,
DateTime.Now.AddMinutes(getMinutesUntilMidnight()), TimeSpan.Zero);
私を悩ませているのは、ASP.NET Caching: Techniques and Best Practices の MSDN ページで読んだものです。
キャッシュにデータを格納する最も簡単な方法は、HashTable または Dictionary オブジェクトのように、キーを使用してデータを割り当てることです。
Cache["key"] = "value";
これにより、アイテムは依存関係なしでキャッシュに保存されるため、追加のキャッシュ データ用のスペースを確保するためにキャッシュ エンジンがアイテムを削除しない限り、有効期限が切れることはありません。
最後のビット -追加のキャッシュ データ用のスペースを確保するために、キャッシュ エンジンがキャッシュ データを削除するという事実 - は、項目が依存関係なしでキャッシュに格納される上記のケースにのみ適用されますか? のキャッシュが期限切れになる前にキャッシュ エンジンによってクリアされないようにするにはどうすればよいですか? myMDXDataSetThatExpiresAtMidnight
または、キャッシュが誤ってクリアされないように、web.config などの設定など、サーバー側のキャッシュに割り当てられるスペースの量を制御する方法はありますか?