1

編集:これは、プログラムで有効期限を設定する方法に関する質問ではありません。私は、絶対、スライド、および依存関係の有効期限に完全に精通しています。

アイテムが ASP.NET キャッシュに格納されている場合、そのアイテムがいつ削除されるかを判断するために ASP.NET で使用される既知のアルゴリズムはありますか?

無効化されているかどうか (SqlCacheDependency 通知の使用など) を意味するのではなく、ロードされてキャッシュされた後、数時間または数日... または数分でサーバー上で触れられていない/読み取られていない要素です。キャッシュ メモリが常に必要とされている場所... IIS または ASP.NET がアイドル状態のデータを消去するタイミングを決定する方法について、公開されている情報はありますか?

私の上司は、IIS の考え方を変えて、必要になる可能性が高いと思われるデータを毎晩強制的にキャッシュにプリロードできるのではないかと考えているからです。これは、アプリの真のニーズと競合する可能性が高い無駄な努力だと思います。そのため、私の考えを検証または反証する堅実な資料を探しています.

ティアG

4

1 に答える 1

2

新しいアイテムを保存する場所を確保するために、キャッシュを時々消去する必要があります。アイテムの有効期限が切れたとき、または依存関係が変更されたときに、キャッシュからのデータを削除することもできます。依存関係は、たとえばデータベースにすることができます。データベースに変更があった場合、このデータベースに依存するアイテムはキャッシュから削除されます。

キャッシュに保存されたデータをクリアするメカニズムは 2 つあります。

清掃 - キャッシュに十分な空き領域がない場合、ASP.NET は最近使用されていないアイテムや優先度の低いアイテムを探します。次に、選択したアイテムを削除し、新しいアイテムをキャッシュに保存します。

期限切れ - 有効期限が過ぎたデータも削除されます。有効期限は絶対的なものにすることができます-データが特定の期間有効である場合、および最後の使用から常に最初から時間がカウントされる場合、いわゆる「スライド」することもできます

于 2012-06-04T11:57:41.563 に答える