2016-12-08 8 views
1

私はRedisでソートセットを使用します。パーティションごとにソートされたセットを読み取る方法は?

ソートセット内のデータの共通の値は百万の上にあります。このソートされたセットをパーティションでどのように読み取ることができますか?私は最初の100 000行と次の意味ですか?

データを取るための唯一つのコマンドがあります:smembers set

答えて

2

は、あなたが次のZRANGE 20万にあなたのソートセットにZRANGEコマンドを使用して開始を指定し、100,000件のエントリを取得するために停止し、その後、100001することができます。

ZRANGE documentation on Redis.io

あなたは、データを取るためにsmembers setを使用して言及したが、それは唯一の非ソートセットに使用されています。実際にソートされていないセットを使用している場合は、SPOPを使用し、カウントを100,000に定義する必要があります。しかし、これは同時にすべてのエントリを削除します。

SPOP documentation on Redis.io

+0

ありがとうございますが、単純な 'sets'をソートしないとどうすればいいですか? – Griboedov

0

あなたはインクリメンタルSSCANを使用してソートされていない集合の要素を反復処理することができます。カーソル0で始まり、次の呼び出しで返されたカーソルを使用して、0が再び返されます。この例では

pantalones:6379> SSCAN five-characters 0 COUNT 3 
    1) "7" 
    2) 1) "d" 
     2) "e" 
     3) "a" 
     4) "c" 
pantalones:6379> SSCAN five-characters 7 COUNT 3 
    1) "0" 
    2) 1) "b" 

SSCANの最初の呼び出しは、次いでSSCANに2回目の呼び出しに提供される7のカーソルを返します。 2番目の呼び出しは0のカーソルを返します。したがって、繰り返しが完了したことがわかります。

SSCAN documentation on Redis.ioを参照してください。

関連する問題