redis
Sorterade uppsättningar
Sök…
Introduktion
Datatypen Sorted Set i Redis är en beställd version av Set-datatypen. En Redis sorterad uppsättning består av en samling unika medlemmar. Varje medlem i den sorterade uppsättningen kan betraktas som ett par bestående av medlemmen och en poäng. Betyget används för att beställa medlemmarna i uppsättningen i stigande ordning.
Syntax
- ZADD-nyckel [NX | XX] [CH] [INCR] poängmedlem [poängmedlem ...]
- ZCARD-knapp
- ZCOUNT nyckel min max
- ZLEXCOUNT nyckel min max
Anmärkningar
Den officiella dokumentationen för Sorterade uppsättningar finns på webbplatsen Redis.io .
Sorterade uppsättningar kallas ibland zsets. Om du använder TYPE-kommandot på en sorterad inställningsnyckel kommer värdet zset att returneras.
Lägga till objekt i en sorterad uppsättning
Redis tillhandahåller ZADD-kommandot för att lägga till objekt i en sorterad uppsättning. Den grundläggande formen för ZADD-kommandot är att ange uppsättningen, objektet som ska läggas till och dess poäng. Om jag till exempel ville konstruera en beställd uppsättning av min favoritmat (från minst till de flesta), kunde jag använda någon av:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
eller alternativt:
zadd favs 1 apple 2 pizza 3 chocolate 4 beer
ZADD-funktionen fungerar mycket på samma sätt som den osorterade inställningsfunktionen SADD. Resultatet av ZADD-kommandot är antalet objekt som lagts till. Så efter att jag skapat min set som ovan, om jag försökte ZADD öl igen:
ZADD favs 4 beer
Jag skulle få ett 0-resultat, om jag bestämde mig för att jag gillar choklad bättre än öl, skulle jag kunna utföra:
ZADD favs 3 beer 4 chocolate
för att uppdatera mina preferenser, men jag skulle fortfarande få ett 0-resultat eftersom både öl och choklad redan finns i uppsättningen.
Räkna objekt i en sorterad uppsättning
Redis ger tre kommandon för att räkna objekten inom en sorterad uppsättning: ZCARD, ZCOUNT, ZLEXCOUNT.
ZCARD-kommandot är det grundläggande testet för kardinaliteten i en uppsättning. (Det är analogt med kommandot SCARD för uppsättningar.). ZCARD returnerar antalet medlemmar i en uppsättning. Utför följande kod för att lägga till objekt i en uppsättning:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
kör ZCard:
zcard favs
ger ett värde på 4.
Med ZCOUNT- och ZLEXCOUNT-kommandona kan du räkna en delmängd av objekten i en sorterad uppsättning baserad på ett värdeintervall. ZCOUNT låter dig räkna objekt inom ett visst intervall av poäng och ZLEXCOUNT låter dig räkna antalet objekt inom ett visst lexografiskt intervall.
Använd vår uppsättning ovan:
zcount favs 2 5
skulle returnera en 3, eftersom det finns tre artiklar (pizza, choklad, öl) som har poäng mellan 2 och 5 inklusive.
ZLEXCOUNT är utformat för att arbeta med uppsättningar där varje objekt har samma poäng, tvingar och beställer på namnnamnen. Om vi skapade en uppsättning som:
zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer
vi kan använda ZLEXCOUNT för att få antalet element i särskilt lexografiskt intervall (detta görs genom bytevis jämförelse med funktionen memcpy).
zlexcount favs [apple (chocolate
skulle returnera 2, eftersom två element (äpple, öl) faller inom intervallet äpple (inklusive) och choklad (exklusivt). Vi kan alternativt göra båda ändarna inkluderande:
zlexcount favs [apple [chocolate
och få resultatet 3.