1

それらの値が比較的大きなシリアライズされたRubyオブジェクトである場合、リスト内のすべての値を取得する最も一般的な方法は何ですか?

例えば:

  • Redis リストに 5000 個の値があります
  • リスト内の各値には、文字列としてシリアル化された 50K の Ruby オブジェクトが含まれます

Ruby でこれらすべての値を反復処理する必要があります。

  1. lrange一度の旅行ですべての値を取得するために使用し、Ruby でそれらを反復処理します
  2. llenリスト内の値をカウントするために使用しlindexてから、Redis への個々のトリップとして各値を取得するために Ruby でループスルーします
4

1 に答える 1

1

違いはありません。コーディングしやすい方を選択してください。LRANGE を使用することによる速度の向上は、大きなオブジェクトの転送に必要な時間によって支配されます。私はおそらくそれらを1つずつ処理します。このようにして、メモリの使用量が少なくなります。

于 2012-07-26T14:08:37.920 に答える