3

Redis では、セットからさまざまなアイテムを取得できますか?

私はあなたにすべてのメンバーを与えるSMEMBERSだけに気づきます。http://redis.io/commands#set

たとえば、毎回何百万ものアイテムで SMEMBERS を使用する必要がある場合、インデックス 33,456 から 33,466 までの 10 個が必要です。

SMEMBERS は、私が 10 個のアイテムを要求するたびに、何百万ものアイテムの完全なリストを生成する必要があります。それはパフォーマンスキラーではありませんか?それとも、Redis は高速であり、そのように使用することを意図しているので大丈夫ですか?

4

2 に答える 2

4

unorderedrangeであるため、セットを取得できません。したがって、インデックスは作成されません。ただし、 SMEMBERSを使用してセットのすべてのメンバーを取得できます。

redis-cli で

SMEMBERS my_set

また、ZRangeはredis でSorted Setsを使用するのに役立つかもしれません

redis-cli で

ZRANGE your_key 33455 33465
于 2014-01-20T05:42:22.223 に答える
2

いいえ、それはできません。Set データ型にはインデックスの概念が存在しないためです。実際、SMEMBERS特定の注文を保証するものではありません。ほとんどの場合、要素の順序は呼び出すたびにランダムになります。Sets は順序付けされていないもののコレクションと考えてください。何か共通のものを共有する ID の束を保存する必要がある場合には最適ですが、ページネーションを実装する必要がある場合に使用するデータ型ではありません。代わりにリストまたはソート済みセットを探しているのではないでしょうか?

redis で利用可能なデータ型と、それぞれをいつ使用するかを理解するために、以下を読むことをお勧めします。

于 2012-10-09T05:37:23.513 に答える