2013-06-28 2 views
6

私が取り組んでいるASP.NET MVCアプリケーションでは、大量の静的データ(実行時にこのテーブルへの更新/挿入はありません)があります。さまざまな列や集計や集約によって、数学的演算は非常に簡単です。.NET用キャッシングフレーム

これで、リポジトリには多くのコールが発行され、コントローラの応答が遅くなります。あなたは私のカスタムコードを記述することなく、(同じ入力パラメータを持つ)リポジトリの呼び出しをキャッシュすることを可能にする優れたキャッシュフレームワークを提案してくださいすることができます

答えて

5

Memorycacheは、単に自分のリポジトリ

しかし、覚えているに追加することによって、あなたのケースに合った:

MemoryCacheクラスは、ASP.NET Cacheクラスに似ています。 MemoryCacheクラスには、ASP.NET Cacheクラスを使用した場合に、使い慣れたキャッシュにアクセスするための多くのプロパティとメソッドがあります。 CacheクラスとMemoryCacheクラスの主な違いは、MemoryCacheクラスがASP.NETアプリケーションではない.NET Frameworkアプリケーションで使用できるように変更されたことです。たとえば、MemoryCacheクラスはSystem.Webアセンブリに依存しません。別の違いは、同じアプリケーションと同じAppDomainインスタンスで使用するMemoryCacheクラスの複数のインスタンスを作成できることです。

1

CacheManager

のCacheManagerは、C#で書かれた.NET用のオープンソース・キャッシング・フレームワークであり、NuGetを介して利用可能です。これは、さまざまなキャッシュプロバイダをサポートし、多くの高度な機能を実装します。

var cache = CacheFactory.Build<string>(
    p => p.WithSystemRuntimeCacheHandle()); 

は使いやすい..を開始する簡単な...

cache.AddOrUpdate("key", "region", "value", _ => "update value"); 
cache.Expire("key", "region", TimeSpan.FromMinutes(1)); 
var val = cache.Get("key", "region"); 
var item = cache.GetCacheItem("key", "region"); 
cache.Put("key", "put value");