2

クライアントに代わって外部Webサービス呼び出しを行うWebアプリがあります。他のクライアントがこのデータを再利用し、このキャッシュされたデータに対してフィルターとクエリを実行できるように、Webアプリの一部のWebサービスから返されたデータをキャッシュしたいと思います。

Webアプリの現在のアーキテクチャは、Apache Camel、Spring、およびJettyを使用しています。インメモリデータベースオプションのオプション(長所/短所)を探しています。

4

3 に答える 3

2

Hazelcast(Java API)-インメモリデータグリッド(マップ、マルチマップ、セット、リスト、キュー、トピックを含む)を複数のノードに非常に簡単に分散し、ディスクベースのDBでロード/ストアインターフェイスの実装を使用できます。EHCacheでも同様のことができます。

Redisは別のオプションです(Javaクライアントを使用してアクセスします)。confファイルを構成してデータをディスクに書き込む(または完全に回避する)ことができ、独自のロード/ストアクラスを書き込む必要はありません。

これらに加えて、使用できるオプションがいくつかあります。オープンソースオプションだけを見ているのか、分散オプションを見ているのかわからない。
それが役に立てば幸い。

于 2012-06-10T18:12:57.247 に答える
0

MemCachedの使用を検討しましたか?これはデータベースではありませんが、アプリケーション内から制御できるキャッシングシステムです。


インメモリデータベースについてもう少し考えてみましょう。まず、ほとんどすべての最新のRDBMSには、内部にメモリキャッシュシステムがあります。データベースサーバーに提供する(そしてキャッシュ用に構成する)メモリが多いほど、後で使用するためにメモリに保存されるメモリも多くなります。すべてのテーブルをキャッシュするのに十分なメモリを備えたシステムをまとめると、別のデータベースのオーバーヘッドなしで「メモリ内」キャッシュが得られます。

ほとんどの「インメモリ」データベースは、パフォーマンスが完全に重要な大容量/大容量データシステムに使用されます。そして、それらは極端なパフォーマンスシステム用であるため、あなたはそれらにお金を払うつもりです。または、より具体的には、それらに追加料金を支払います。たとえば、完全なインメモリをサポートするSAP / Sybase DBは、既存の製品よりも40%から300%高いコストがかかる可能性があります。

それで、あなたの質問に答えて、あなたは本当にそれを必要としますか?

于 2012-06-10T17:19:24.417 に答える
0

Redissonを試してください-メモリ内のdbRedisに加えて、分散型でスケーラブルな使い慣れたJavaデータ構造(Set、Map、ConcurrentMap、List、Queue、Lock、AtomicLong、CountDownLatch、Publish / Subscribe)。

于 2014-01-17T15:01:37.260 に答える