2012-01-02 6 views
1

データベースにプロジェクトを格納するWebアプリケーションがあります。 パフォーマンスを向上させるためにApp Farbic Cachingを使用することに決めました。 以下に関連する最良のパターン(またはどの基準を決定するか)はどうでしょうか。 各プロジェクトをキャッシュに個別に保存します。 キャッシュ全体(つまりアイテムのリストを表す1つのキー)にリストを格納しますか?Appfabricのキャッシングパターン(全体のリストと個々のアイテム)

多くのおかげで、

ジョセフ

答えて

1

それは依存しています。いくつかの考慮事項があります。 リストが潜在的に巨大であった場合は、個々のキャッシュキーの内容が非常に大きくなる可能性があります(ローカルキャッシュを有効にすると、明らかにこれが緩和される可能性があります)。このようなラージオブジェクトグラフのシリアライズとデシリアライズは、クライアント上で時間とリソースを消費します。 しかし、キャッシュからデシリアライズされた後で、リストに対してオブジェクトに対してlinqを実行するアプリケーションでは、このようにしたいかもしれません。

リストに対して実行クエリが十分に定義されている場合は、別のキャッシュキーの下にリストの複数の味をキャッシュすることができ - 代わり、あなたはPeopleMalePeopleFemalePeopleAmericanを持つことができ、 PeopleIrishPeopleFrenchなど これを行うと、同じ人物が複数のキャッシュされた人物リストに表示される可能性があり、これを管理する必要があります。 たとえば、私には、アメリカ人とアイルランド人の両方の市民権を持つ女性の人がいます。女性から性別の変更を行うためにので、私はその人を編集し、市民権がオランダ語に変更された場合、4つのキーがPeopleMalePeopleFemalePeopleAmericanPeopleIrishを無効化されることを保証するために必要であろう。

上記の例では、管理するのが面倒になる可能性があります。その価値は実際の使用例に左右されます。

一般に、可能であれば、比較的不揮発性の参照データ(国、ステータスタイプ、国籍など)のリストを含むキャッシュキーのみを使用することをお勧めします。

これが役に立ちます。

+0

詳細な回答ありがとうございます。とても有難い –

関連する問題