4

私は理解しようとしていますが、ヴォルデモートはどのように使用できますか?たとえば、次のシナリオがあります。

以来、ヴォルデモートはキーと値のペアです。 3つのパラメーターに基づいて値(たとえばテキスト)をフェッチする必要があります。

では、この場合の鍵は何でしょうか?1つの値に3つのキーを使用することはできませんが、その値はこれら3つのパラメーターに基づいて検索できるはずです。

私は理にかなっていますか?

ありがとう

編集1

例:ブログシステム。ユーザーがブログを投稿する:保存されるユーザーのデータ:名前、年齢、性別ブログのコンテンツ(テキスト)が保存されます。

ここで、ユーザーがフロントエンドからSex:Maleによるすべてのブログ投稿を検索する場合は、ここでVoldemortを使用する必要があります。

次に、私のコードはvoldemortにクエリを実行し、男性としての性別を持つすべての「ブログコンテンツ(テキスト)」を返す必要があります。

だから、私の理解によると:

Key = Name, Age and Sex
Value = Text

私はJavaを使用しています。

4

2 に答える 2

5

質問に追加された例に合わせて編集された回答:

ヴォルデモートについて理解しておくべきことは、非常に単純なキーと値のストアであることです。私の知る限り、できることはキーの下に値を格納し、それらの値をキーで取得することだけです。あなたの例では、ヴォルデモートを本当に使いたいのであれば、いくつかの選択肢があります。

たとえば、ユーザーのデータを保存していると言いました。したがって、次のようなものがあるかもしれません:

Key = user-Chad
Value = Name:Chad Birch, Age:26, Sex:Male

ここで、新しいブログ投稿を投稿したい場合は、それもキーの下に保存する必要があります。したがって、次のようなことができます。

Key = blog-Chad1
Value = Here is my very first blog post.

ここでの問題は、Sex:Male のユーザーが作成したすべてのブログ投稿を検索する何らかの方法が必要なことですが、そのデータを直接取得する方法はありません。この時点で、次のいずれかを行う必要があります。

  1. すべてのユーザーを引き出し、男性かどうかを確認し、そうであればブログ投稿を引き出します。
  2. これを調べることができるように、他のキーと値のペアでより多くのものを保存し始めます。

#2 を実装するには、次のように別のペアを追加できます。

Key = search-Sex:Male
Value = Chad1 Chad2 Steve1 ...

次に、誰かが Sex:Male を検索すると、この値を取り出して分割し、それらすべてのブログ投稿を取得します。

それは理にかなっていますか?kv ストアの使用は、これらのリレーショナル機能をすべて失うため、データベースとはかなり異なります。

于 2010-04-01T19:57:37.663 に答える
1

キー値ストアで直接それを行うことはできないと思いますが、回避策の 1 つはユーザーを複数の場所に保存することです。

たとえば、ブログ投稿のリストへのユーザーのキーと値のマッピングがあるとします。また、ユーザーのリストへの年齢のマッピングもあります。また、ユーザーのリストへの性別。年齢または性別で検索する場合は、対応するユーザーのリストを取得してから、すべてのブログ投稿を取得します。

Voldemort のようなキーと値のストアが機能する理由の 1 つは、ストレージとクエリが十分に安価であり、余分なものを実行できることです。

ただし、上記のスキームの問題は、分散型の方法でヴォルデモートを使用している場合、データの短いリストにマップする多くのキーを使用した方がよいことです (したがって、キーに基づいて分散できます)。これは、マッピングのようなものです。ユーザーへの性別は違反します(それぞれのデータのリストが非常に大きくなる可能性がある少数のキーのみ)。

于 2010-04-01T20:24:01.023 に答える