0

あまり頻繁に変更されないデータベースから返されるコンテンツがいくつかありActionMethodsます (例: json として返される利用可能な ZIP エリアのポリゴン リスト。年に 2 回変更されます)。

属性があることは知って[OutputCache(...)]いますが、これにはいくつかの欠点があります (長時間のクライアント側のキャッシュは適切ではありません。サーバー/iis/プロセスが再起動されると、サーバー側のキャッシュも停止します)。

私が欲しいのは、MVCが結果をファイルシステムに保存し、ハッシュを計算し、ハッシュが変更されていない場合-HTTPステータスコード304を返すことです->デフォルトで画像で行われるように。

誰かがその解決策を知っていますか?

4

1 に答える 1

0

次の理由から、ファイル システムにデータをキャッシュしようとするのは悪い考えだと思います。

  1. ファイル システムからデータを読み取る方が、データベースからデータを取得するよりもはるかに高速になることはありません。たとえ既に json 形式になっているとしてもです。
  2. ハッシュを計算して比較するために、多くのロジックを追加します。ファイルからデータを読み取ることもできます。これは、新しいバグ、より複雑なことを意味します。

私があなただったら、できるだけシンプルにします。アプリケーションコンテナにデータを保存します。はい、アプリケーションを起動するたびに再読み込みする必要がありますが、アプリケーションは頻繁に再起動する必要がないため、まったく問題にはなりません。また、Web ファームがある場合は、異なるサーバーのアプリケーション コンテナーで異なるデータが発生しないようにするために、App Fabric などの分散キャッシュを使用することを検討してください。

そして、もう 1 つ重要な注意事項があります。キャッシングは非常に高速なアクセスを意味し、ファイル システムやデータベース ストレージでは実現できません。これはメモリ ストレージとして考慮する必要があります。

于 2012-12-20T16:25:33.840 に答える