2016-12-08 3 views
1

J'utilise un ensemble trié dans Redis.Comment lire un ensemble trié par partitions?

La valeur commune des données dans l'ensemble trié est supérieure à un million. Comment puis-je lire cet ensemble trié par partitions? Je veux dire d'abord 100 000 lignes et ce qui suit?

Il n'y a qu'une seule commande pour prendre des données: smembers set

Répondre

2

Vous pouvez utiliser la commande ZRANGE sur votre jeu et spécifiez le Sorted début et de fin pour obtenir 100.000 entrées, puis 100001 à 200 000 pour la prochaine ZRANGE.

ZRANGE documentation on Redis.io

Vous avez parlé à l'aide smembers set pour prendre des données, mais qui est utilisé uniquement sur des ensembles non triés. Si vous utilisez un ensemble non trié, vous devrez utiliser SPOP et définir votre compte à 100 000. Cependant, cela supprimerait simultanément toutes ces entrées.

SPOP documentation on Redis.io

+0

Merci, mais comment puis-je faire cela avec de simples 'sets' non triés? – Griboedov

0

Vous pouvez parcourir les éléments d'un ensemble en utilisant progressivement non triés SSCAN. Commencez avec le curseur 0 et utilisez le curseur renvoyé dans les appels suivants, jusqu'à ce que 0 soit renvoyé à nouveau.

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" 

Dans cet exemple, le premier appel à SSCAN renvoie un curseur de 7, qui est ensuite fournie au second appel à SSCAN. Le deuxième appel renvoie un curseur de 0, nous savons donc que l'itération est terminée.

Voir SSCAN documentation on Redis.io.