Zoeken…


Invoering

Redis ondersteunt een set datatype analoog aan wiskundige sets voor het modelleren van gegevens in de database. Sets zijn een samengesteld gegevenstype dat bestaat uit een groep unieke, ongeordende leden. Sets ondersteunen het toevoegen en verwijderen van leden, groottebewerkingen en combinatiebewerkingen waarbij twee sets worden gebruikt en een derde set wordt gegenereerd. Sets in Redis zijn vergelijkbaar met Sets in de meeste programmeertalen.

Syntaxis

  • SADD-sleutellid [lid ...]
  • SISMEMBER sleutellid
  • SCARD-toets
  • SADD-sleutellid [lid ...]

Opmerkingen

De volledige documentatie over het Redis set-gegevenstype is te vinden op Redis.io .

Grootte van een set

De grootte van een set kan worden bepaald met behulp van de opdracht SCARD. SCARD retourneert de kardinaliteit van een set of het aantal leden in de set. Als ik bijvoorbeeld een Redis-set my_set had opgeslagen in de database die eruit zag (Apple, Orange, Banana), kon ik de grootte krijgen met de volgende code:

SCARD my_set

In het geval van mijn voorbeeldset zou dit 3 opleveren. Als de gebruiker een SCARD-opdracht uitvoert op een sleutel die niet bestaat, retourneert Redis 0.

Items toevoegen aan een set

De basisopdracht Redis voor het toevoegen van een item aan een set is SADD. Er zijn een sleutel en een of meer leden voor nodig en deze worden aan de set toegevoegd die bij de gegeven sleutel is opgeslagen.

Laten we bijvoorbeeld zeggen dat ik een set wilde maken met de items appel, peer en banaan. Ik zou een van de volgende dingen kunnen uitvoeren:

SADD fruit apple
SADD fruit pear
SADD fruit banana

of

SADD fruit apple pear banana

Na het uitvoeren van een van beide, heb ik de set fruit met 3 items.

Als u probeert een item toe te voegen dat al in de set staat, heeft dit geen effect. Nadat ik mijn fruitset met behulp van de bovenstaande code heb ingesteld, als ik opnieuw appel probeer toe te voegen:

SADD fruit apple

Redis zal proberen appel aan de fruitset toe te voegen, maar omdat deze al in de set zit, verandert er niets.

Het resultaat van de opdracht SADD is altijd het aantal items dat opnieuw aan een set is toegevoegd. Dus als je probeert om appel opnieuw toe te voegen, krijg je een resultaat van 0.

Ledenitems in Redis zijn hoofdlettergevoelig, dus Apple en Apple worden als twee afzonderlijke items behandeld.

Testen op lidmaatschap

Redis levert het SISMEMBER commando om te testen of een bepaald item al lid is van een set. Met het SISMEMBER-commando kan ik testen of Apple al deel uitmaakt van mijn fruitset.

Als ik mijn fruitset uit het vorige voorbeeld construeer, kan ik controleren en zien of deze appel bevat met behulp van de volgende test:

SISMEMBER fruit apple

SISMEMBER retourneert een 1 omdat het item er al is.

Als ik probeerde te zien of hond lid is van mijn fruitset:

SISMEMBER fruit dog

Redis geeft een 0 terug omdat de hond niet in de fruitset zit.

Als een gebruiker de SISMEMBER-opdracht probeert te gebruiken met een sleutel die niet bestaat, retourneert Redis een 0 die aangeeft dat er geen lidmaatschap is, maar als u SISMEMBER gebruikt met een sleutel die al een niet-ingesteld gegevenstype bevat, retourneert Redis een foutmelding.



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