2016-06-28 2 views
2

私はASP.NET MVC 5で書かれたアプリケーションを持っています。これは、多くのデータベーストランザクションを生成します。MemcachedをEntity Framework 6の第2層キャッシュとして使用できますか?

レポート専用のサーバースレーブがないため、レポートで生成されたすべてのクエリをキャッシュするために、Entityフレームワークで2番目のレベルのキャッシュを使用する必要があります。

ここでの考え方は、特に複数のユーザーが同じレポートを表示しようとしているときにデータベースにヒットする必要があるクエリの量を減らすことです。ダッシュボードを表示する5人のユーザーがいる場合は、1人だけがデータベースにアクセスし、残りのユーザーはキャッシュに格納されたデータセットを読み取ります。これにより、レポートのパフォーマンスが向上し、データベースのロックが軽減され、アプリケーションのパフォーマンスが向上します。

MemcachedまたはRedisは、クエリが一定の時間実行された後にデータセットがキャッシュされるEntityフレームワークで使用できますか。そしてもちろん、クエリが実行される前に、サーバでハード・クエリが実行される前に、キャッシュは既存のデータセットについてチェックされます。

私はNCacheに出くわしました。これは私が達成しようとしているものですが、残念ながらそれは高価です。

答えて

1

あなたは正しいですが、NCacheはRedisやMemcacheと比べると「高価」ですが、それには正当な理由があります。

後で実行するエンティティフレームワークプロバイダモデルには、NCache Enterpriseエディションが付属しています。それはあなたに多くのDEV時間を節約します。詳細については、私はちょうど記事に

Entity Framework Caching with NCache

あなたを指してみましょうそして、あなたは、製品のために支払うことになりますので、あなたはより多くの多くの方法や機能を使用して、アプリケーションの応答時間を向上させることができます。それでもMemcacheの程度永続しているならば、Julie LermanはEntity Frameworkの中の二次キャッシュを実装についての良い記事がありますがより多くの情報を得るために

Memcache Comparison試してみて、Redis Comparison

。あるいは、githubの他のオープンソースのEntity Frameworkモジュールを使用してバグを受け入れることもできます。 EFRedis

フル・ディスクロージャー:私はAlachisoftのために働いています。

関連する問題