3

ASP.NET MVC 5 で記述されたアプリケーションがあります。これにより、多くのデータベース トランザクションが生成されます。

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

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

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

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

4

1 に答える 1

1

NCache は、Redis や Memcache と比較すると「高価」ですが、それには十分な理由があります。

あなたが求めているエンティティ フレームワーク プロバイダー モデルは、NCache Enterprise エディションに付属しています。これにより、DEV の時間を大幅に節約できます。詳細については、適切な記事を参照してください

NCache を使用した Entity Framework のキャッシュ

また、製品の料金を支払うことになるため、さらに多くの方法と機能を使用してアプリケーションの応答時間を向上させることができます。

詳細については、 Memcache の比較Redis の比較を試してください。

それでも Memcache に固執している場合は、Julie Lermanが Entity Framework での第 2 レベルのキャッシュの実装に関する優れた記事を書いています。または、github の他のオープン ソース Entity Framework モジュールを使用して、EFRedisなどのバグを受け入れることもできます。

完全な開示: 私は Alachisoft © で働いています

于 2016-06-28T06:00:24.613 に答える