7

Key Valueストアのインデックスを使用してデータベーステーブルをシミュレートする最も簡単な方法は何ですか?Key Valueストアには、範囲指定されたクエリや順序付けされたキーはありません。

シミュレートしたいもの(優先順位順):

  1. テーブルを作成する
  2. 列を追加する
  3. インデックスを作成する
  4. 主キーに基づくクエリ
  5. 任意の列に基づくクエリ
4

3 に答える 3

4

Redis(文字列、リスト、セットなどをサポートする高度なKey-Valueストア)を使用する場合、これは非常に簡単です。POCOのデータモデルを保存するためのネイティブサポートを備えたC#redisクライアントをすでに開発しました。これらのまったく同じPOCOをOrmLiteで使用して、RDBMSに保存できます。

ちなみに、Redisは高速ですが、Northwindデータベース全体(3202レコード)を1.2秒未満で保存および取得するベンチマークがあります( 3yo iMacのUnitTest内で実行)

エンティティを2つの方法で保存します

  • 個別のエンティティ。クラスタイプ名と主キーを組み合わせて一意のキーを作成します。例:urn:user:1
    • 次に、次のようなキーを使用して、すべてのエンティティを追跡するために、(Redisセット内の)主キーの個別のセットを維持します。ids:user
  • Redisサーバーサイドリストでは、次のようなキーを使用して、ページングをサポートするテーブルのように機能します。lists:user
于 2010-02-16T13:41:07.967 に答える
2

ハッシュテーブルまたは辞書を使用します。一意のキー値が必要な場合は、GUIDまたはハッシュコードを使用できます。

于 2010-02-16T13:06:26.870 に答える
1

Key-Valueストアは、キーの順序付けとキーへの遠隔アクセスをサポートする必要があります。

次に、2つの辞書を作成する必要があります。

id -> payload

col1, id -> NULL

、ここにpayloadは、データベーステーブルに含まれるすべてのデータが含まれている必要があり、2番目のディクショナリのキーには(col1, id)、最初のディクショナリの各エントリの値が含まれている必要があります。

于 2010-02-16T13:09:51.993 に答える