過去に RSS を実装したとき、RSS データを HttpContext.Current.Cache にキャッシュしました。
通常、RSS データはそれほど頻繁に更新する必要はありません (たとえば、1 分に 1 回で十分です)。そのため、誰かが RSS データを要求するたびにではなく、実際には 1 分に 1 回 DB にアクセスするだけで済みます。
キャッシュの使用方法の例を次に示します。
// To save to the cache
HttpContext.Current.Cache.Insert("YourCachedName", pObjectToCache, null, DateTime.UtcNow.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration);
// To fetch from the cache
YourRssObject pObject = HttpContext.Current.Cache[("YourCachedName"] as YourRssObject : null;
ashx で次のように設定することもできます。
context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
これにより、RSS ページは有効期限が切れるまでキャッシュされたバージョンを提供します。これにはさらに少ないリソースしか必要としませんが、RSS データ アクセス レイヤー呼び出しを使用する他のものがある場合、そのデータはキャッシュされません。
次のように設定することで、RSS が受け取る可能性のあるクエリ パラメータに基づいてキャッシュすることもできます。
context.Response.Cache.VaryByParams["YourQueryParamName"] = true;