Zoeken…


Invoering

Het Sorted Set-gegevenstype in Redis is een geordende versie van het Set-gegevenstype. Een gesorteerde set van Redis bestaat uit een verzameling unieke leden. Elk lid in de gesorteerde set kan worden beschouwd als een paar bestaande uit het lid en een score. De score wordt gebruikt om de leden binnen de set in oplopende volgorde te ordenen.

Syntaxis

  • ZADD-toets [NX | XX] [CH] [INCR] scorelid [scorelid ...]
  • ZCARD-toets
  • ZCOUNT sleutel min max
  • ZLEXCOUNT toets min max

Opmerkingen

De officiële documentatie voor gesorteerde sets is te vinden op de site Redis.io .

Gesorteerde sets worden soms zsets genoemd. Als u de opdracht TYPE gebruikt voor een gesorteerde set-toets, wordt de waarde zset geretourneerd.

Items toevoegen aan een gesorteerde set

Redis biedt de ZADD-opdracht om items toe te voegen aan een gesorteerde set. De basisvorm van het ZADD-commando is het opgeven van de set, het item dat moet worden toegevoegd en de score. Als ik bijvoorbeeld een bestelde set van mijn favoriete eten wilde maken (van de minste tot de meeste), kon ik een van de volgende gebruiken:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

Of anders:

zadd favs 1 apple 2 pizza 3 chocolate 4 beer

De ZADD-functie werkt zeer vergelijkbaar met de ongesorteerde ingestelde functie SADD. Het resultaat van de opdracht ZADD is het aantal items dat is toegevoegd. Dus na het maken van mijn set zoals hierboven, als ik opnieuw probeerde ZADD-bier:

ZADD favs 4 beer

Ik zou een 0-resultaat krijgen, als ik zou besluiten dat ik chocolade beter vind dan bier, zou ik het kunnen uitvoeren:

ZADD favs 3 beer 4 chocolate

om mijn voorkeuren bij te werken, maar ik zou nog steeds een 0-retourresultaat krijgen omdat zowel bier als chocolade al in de set zitten.

Items in een gesorteerde set tellen

Redis biedt drie opdrachten om de items binnen een gesorteerde set te tellen: ZCARD, ZCOUNT, ZLEXCOUNT.

Het ZCARD-commando is de basistest voor de kardinaliteit van een set. (Het is analoog aan het SCARD-commando voor sets.). ZCARD retourneert het aantal leden van een set. De volgende code uitvoeren om items aan een set toe te voegen:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

ZCard uitvoeren:

zcard favs

geeft een waarde van 4 terug.

Met de opdrachten ZCOUNT en ZLEXCOUNT kunt u een subset van de items in een gesorteerde set tellen op basis van een bereik van waarden. Met ZCOUNT kunt u items binnen een bepaald bereik van scores tellen en met ZLEXCOUNT kunt u het aantal items binnen een bepaald lexografisch bereik tellen.

Met behulp van onze set hierboven:

zcount favs 2 5

zou een 3 teruggeven, omdat er drie items (pizza, chocolade, bier) zijn met scores tussen 2 en 5 inclusief.

ZLEXCOUNT is ontworpen om te werken met sets waarbij elk item dezelfde score heeft, geforceerd en geordend op de verkiezingsnamen. Als we een set hebben gemaakt zoals:

zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer

we kunnen ZLEXCOUNT gebruiken om het aantal elementen in het bijzonder lexografisch bereik te krijgen (dit wordt gedaan door byte-gewijs te vergelijken met behulp van de memcpy-functie).

zlexcount favs [apple (chocolate

zou 2 teruggeven, omdat twee elementen (appel, bier) vallen binnen het bereik appel (inclusief) en chocolade (exclusief). We kunnen ook beide uiteinden inclusief maken:

zlexcount favs [apple [chocolate

en krijg het resultaat 3.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow