1

IIS でホストされている ASP.NET MVC 3 アプリがあります。このアプリは、MemoryCache を使用してメモリ内のデータを処理し、データベースへのヒットを最小限に抑えています。このデータを最大 1 日キャッシュしたままにしておきます。私のコードでは、次のように設定しています。

List<MyObject> myItems = GetMyItems();
CacheItemPolicy cachePolicy = new CacheItemPolicy();
cachePolicy.AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddMinutes(1440));
Cache.Set("myCacheKey", myItems, cachePolicy);

私のキャッシングが機能しているように見えますが。ただし、意図した期間キャッシュにとどまらないようです。web.config で行う必要がある設定はありますか? もしそうなら、どのような設定ですか? そうでない場合、より長いキャッシュ期間を有効にするために設定する必要があるのは IIS 設定ですか?

4

1 に答える 1

1

問題は、使用されていない期間の後にアプリ プールがリサイクルされていることにある可能性があります。アプリ プールがリサイクルされると、メモリ内にあったものはすべて失われます。

より耐久性のあるキャッシュが必要な場合は、インプロセスでホストされていないものに切り替える必要があります。多数の商用およびオープンソースのキャッシング サービスがあります。それらのいずれかで行くことをお勧めします。

以下に、いくつかのキャッシュ ソリューションを示します。

  1. 共有キャッシュ
  2. AppFabric
  3. Nキャッシュ
  4. MemCached.NET

とりわけ。

于 2012-06-18T11:50:06.453 に答える