2010-12-03 4 views
-2

私たちのプロジェクトでは、オブジェクト用のメモリ内のキーと値の格納がすでに組み込まれています。インデックスを作成し、それに基づいてストレージを照会できるので、非常に便利です。ですから、「学生」の集まりとstudent.groupとstudent.sexの複合インデックスがあれば、グループ「ABC」のすべての男子学生を見つけることができます。削除などでも同じです。インデックスを許可するリモートキー値ストレージ?

クラウドで作業するために私たちのサービスを採用する必要があります。そのため、ユーザーの要求を処理する複数のサーバーが存在し、これらのサーバーは共有キーを持つインデックス付きストレージに格納されます。私たちは必要に応じてmemcashedを採用しようとしましたが、それはほぼ理想的です。それは速く、シンプルで実証済みのソリューションですが、インデックスはないため、一時データを検索することはできません。

memcashedのようにリモートキャッシュを持つ方法はありますか?インデックスはありますか?

ありがとうございます。

答えて

4

Try hazelcast、サーバー間でデータを配信するメモリ内データグリッドです。あなたはあなたの質問に記述されたのと同じようにインデックスを持つことができます。

使い方は非常に簡単です。 Hazelcast.jarを追加してコーディングを開始するだけです。埋め込み型とリモート型の両方が可能です。ここで

は、インデックスとクエリの使用は、IMDG

myDistributedMap.put(student.id, student) 

のインデックス

IMap<Integer, Student> myDistributedMap = Hazelcast.getMap("students") 
myDistributedMap.addIndex("group", false); 
myDistributedMap.addIndex("sex", false); 

ストアを追加

です。

クエリ

Collection<Student> result = myDistributedMap.values(new SqlPredicate("sex=male AND group=ABC")); 

は、最後には雲の中に正常に動作します。例:EC2

+0

いいですが、それはJavaバインドですか? jreベースではないヘイルキャストを使用することは可能ですか? –

+0

現在、HazelcastはJavaクライアント、Memcacheプロトコル、RESTインタフェースをサポートしています。 RESTインターフェイスを使用すると、Hazelcastにアクセスできます。しかし、まだRESTのための十分なドキュメントはありません。 –

関連する問題