1

私は何千もの行で構成されるファイルを持っています(それぞれに3つのフィールドが含まれ、最初はakの長さの文字列、次に数字、3番目は別の文字列です)の形式:-

k|1|r1
k|1|r2
k|2|r2
k1|1|r3

以下を使用して、redis-py を使用してロードします。

sadd('k:1', 'r1')
sadd('k:1', 'r2')
sadd('k:2', 'r2')
sadd('k1:1', 'r3')

のようなマッピングを形成する

{
     "k:1"  : ("r1", "r2"),
     "k:2"  : ("r2"),
     "k1:1" : ("r3")
}

k (最初の 3 つのレコードに共通する ak の長さの文字列) の反復情報を削除することにより、フォームの値を格納するつもりです。

{
     "k": {
         "1"  : ("r1", "r2"),
        "2"  : ("r2")
      }
     "k1": {
       "1" : ("r3")
     }
}

セットを別のキーの下に格納する値を格納するという考えがあります。これは、ハッシュの k の値として機能します。それよりも良い方法はありますか?

4

1 に答える 1

1

セットを別のキーの下に保存することもできますが、セットが静的である場合、セット機能は必要ありません。代わりに、ルックアップを保存して、コンマ区切りの値として (または値が少ない場合はデータに適したセパレーターを使用するか、値が多い場合はgzipされたコンマ区切りの値として使用します(私の経験では、文字列が十分に大きい場合、gのコスト(un)zip は、削減されたネットワーク コストによって相殺されます)。

于 2015-05-28T17:43:57.603 に答える