0

私はRSSアグリゲーターを構築しており、フィードからの最後のエントリをブラウズしているユーザーに表示し、ページごとに約20のフィードを表示しています。ユーザーがページをロードするたびに、20 個のフィードのそれぞれから最後のアイテムを取得するのは大変なことであることがわかります。そのため、フィードを 1 日キャッシュするのが最善の方法だと考えていました。

キャッシュはメモリまたはディスクに保存されますか? 非常に多くのアイテムをキャッシュすると、ホストのメモリ制限に達してプールが停止するのではないかと心配しています。

このタイプのチャッシングは MVC でどのように行われますか? 私はそれがPage.Cache.InsertWebForms のようなものになることを知っています。System.ServiceModel.Syndicationフィードから最後のエントリを取得するために使用しています。

フィード タイトル、フィード アドレス、アイテム タイトル、アイテム アドレス、コンテンツの最初の 200 文字を保持するカスタム モデル クラスがあるので、多くのメモリを消費することはありません。

キャッシュがどこに保存されているかを誰か説明してもらえますか? また、1 日もチャッキングするとアプリに悪影響を与える可能性がありますか? ありがとう

4

1 に答える 1

0

コントローラーでアクションをキャッシュとして定義する必要があります ( MSDN ):

 [OutputCache(Duration=10, VaryByParam="none")]
        public ActionResult Index()
        {
            return View();
        }

データはメモリに保存されます。IIS構成で出力キャッシュを管理できます

すでにデフォルトの制限属性があります:

キャッシュされた応答の最大サイズ(バイト単位) ユーザー モード キャッシュとカーネル モード キャッシュの両方について、キャッシュされた応答の最大サイズを指定します。デフォルト値は 262144 バイトです。このフィールドはサーバー レベルでのみ有効です。他のすべてのレベルでは読み取り専用です。

キャッシュ サイズの制限(MB) ユーザー モードとカーネル モードの両方のキャッシュのサイズ制限を構成します。サイズ (MB 単位) または 0 を入力できます。0 を入力すると、IIS は使用可能な物理メモリまたは仮想メモリのどちらか少ない方の半分を使用します。このフィールドはサーバー レベルでのみ有効です。他のすべてのレベルでは読み取り専用です。

于 2012-04-30T05:32:58.787 に答える