2012-04-23 13 views
0

データをデータベースに保存する階層化アプリケーションがあるとします。より高速にアクセスするには、データ(またはその重要な部分)をメモリに保存したいと考えています。どのレイヤーでデータをメモリに保存しますか?

どのレイヤー(データベースレイヤーまたはロジックレイヤー)でデータをメモリに保持するのが最適ですか? ビジネスロジックで処理される前または後で?

ビジネスロジックを適用する前にメモリに保持しておくと、データベースにコールする必要はほとんどありませんが、柔軟性は非常に低くなります(下位レベルに委任できないため)。

このようなパターンやベストプラクティスはありますか?

答えて

1

これは、アーキテクチャによって異なりますが、使用方法については、ご自身が指摘したとおりです。

一般的な視点では、キャッシュは、2つのロジックレイヤーまたはデータレイヤーのいずれか、または両方で、さらにはサービスレイヤーでも実装できます。たとえば。 Restfulアーキテクチャでは、GET呼び出しが冪等の読み取りであり、データを変更しないと仮定できるので、キャッシュすることもできます。

結論として、キャッシュ戦略は実際のニーズのアフター・エフェクトでなければなりません。開発プロセスでは、必要になったときに素早く展開できるように、どのレイヤでも簡単に利用できるようにする必要があります(Restful原則が大いに役立ちます)。小さく始めてから追加してください。 ;)Twitterから

例:http://www.infoq.com/news/2009/06/Twitter-Architecture

2

キーワードデータあります。

データアクセス層にキャッシュ戦略を導入することで、ビジネス層のコード全体をビジネス問題の解決に専念させることができます。

+0

私は、ビジネスロジックが適用された後の前にデータをキャッシュすることを言いました。これは、ビジネスロジックには何ら影響しません。 – m3th0dman

関連する問題