Key Valueストアのインデックスを使用してデータベーステーブルをシミュレートする最も簡単な方法は何ですか?Key Valueストアには、範囲指定されたクエリや順序付けされたキーはありません。
シミュレートしたいもの(優先順位順):
- テーブルを作成する
- 列を追加する
- インデックスを作成する
- 主キーに基づくクエリ
- 任意の列に基づくクエリ
Redis(文字列、リスト、セットなどをサポートする高度なKey-Valueストア)を使用する場合、これは非常に簡単です。POCOのデータモデルを保存するためのネイティブサポートを備えたC#redisクライアントをすでに開発しました。これらのまったく同じPOCOをOrmLiteで使用して、RDBMSに保存できます。
ちなみに、Redisは高速ですが、Northwindデータベース全体(3202レコード)を1.2秒未満で保存および取得するベンチマークがあります( 3yo iMacのUnitTest内で実行)。
エンティティを2つの方法で保存します
urn:user:1
ids:user
lists:user
ハッシュテーブルまたは辞書を使用します。一意のキー値が必要な場合は、GUIDまたはハッシュコードを使用できます。
Key-Valueストアは、キーの順序付けとキーへの遠隔アクセスをサポートする必要があります。
次に、2つの辞書を作成する必要があります。
id -> payload
と
col1, id -> NULL
、ここにpayload
は、データベーステーブルに含まれるすべてのデータが含まれている必要があり、2番目のディクショナリのキーには(col1, id)
、最初のディクショナリの各エントリの値が含まれている必要があります。