2

こんにちは、みんな、

私は L2 キャッシングの世界に慣れていないので、気楽にやってください :)。いくつかの質問を聞きたいんです:

1) EhCache と JPA 2.0 L2 キャッシュの違いは何ですか?

私の理解では、EhCache は分散されています (スタンドアロンにすることもできます) が、JPA 2.0 L2 キャッシュは分散されていません (JVM ごと)。

2) キャッシング戦略

キャッシング 101 戦略を共有してください。コレクションをキャッシュする方法 (問題とヒント)? キャッシュ プール内のオブジェクトを検索する方法 (キャッシュしていることがわかっている場合)。

3) キャッシングとストアド プロシージャ

データベースがその上で 2 つの異なるアプリケーションをサポートしているとします。一方のアプリケーションがストアド プロシージャを介してデータを更新し、もう一方の (キャッシュ) がデータを読み取る場合、更新の問題をどのように解決しますか? 読者にとっては、更新がないかのようです。

特定の大きな Web サイトがすべてをキャッシュしているという話を聞きました。これは、キャッシュ ライブラリと JPA / ORM の両方の上に独自のデータ アクセス レイヤーを記述することを意味するのでしょうか?

PS: ゴールデン ルールは、早い段階でキャッシュを回避するか、できればハードウェアの機能を向上させることであることを理解しています。学習目的でこの質問をしています。また、特定のシナリオを求めているわけではありませんが、一般的なルール、一般的なシナリオ、最小公倍数のほうが多く、全員の問題を解決する必要はありません。

ありがとう!

4

1 に答える 1

4

1) EHCache はキャッシングの実装です。JPA2 L2 はキャッシングインターフェースです。EHCache を JPA L2 キャッシュ プロバイダーとして使用できます。選択する L2 キャッシュ プロバイダーは、要件に完全に依存する必要があります。EHCache が最適だと思われる場合は、それを使用してください。

2) ちょっと曖昧なので省略します。多くの異なるシナリオに対して、多くの優れた戦略があります。

3) データベースを更新していて、キャッシュにヒットしないものがある場合、キャッシュは古くなります。それがあなたのドメインで問題なければ、問題ありません。それ以外の場合は、キャッシュまたは更新のニーズに対して別の解決策を考え出す必要があります。これにより、両方の同期が維持されます。

于 2011-01-17T09:11:51.590 に答える