Redis heksister

Redis heksister

Redis Hashes

Kartet er en mye brukt datastruktur i sammenheng med programmering. Det er en mye brukt teknikk for å lagre nøkkelverdiparene. Hver nøkkel kartlegger til en viss verdi som vist i følgende:

Redis Hashes følger den samme indre strukturen. Men de vil ikke tillate deg å lagre komplekse verdistyper som sett, liste eller hasj. Det er noen måter å peke hasjfeltverdiene til de andre komplekse datatypene, men det er ikke greit.

Praktisk bruk av Redis Hashes

Redis Hashes er veldig effektive i to forskjellige scenarier:

  1. Objektrepresentasjon
  2. Lagre små dataverdier kompakt

Objektrepresentasjon ved bruk av Redis Hashes

I programmering representerer objektene de virkelige enhetene med sine stater og atferd. Vanligvis har et objekt en identifikator (navn) og interne egenskaper som vist i følgende:

Redis Hashes er i stand til å lagre denne typen objekter i lagringen. Vi vet at Redis er lagring av nøkkelverdiparet. Derfor kan det forrige objektet representeres som vist i følgende:

Nøkkel : Bruker: 001

Verdi : Interne egenskaper som en redis hasj

Den mer detaljerte representasjonen vises i det følgende.

Nøkkel : Bruker: 001

Verdi : “Navn” => “Mike”

“Alder” => “35”

“Land” => “USA”

“Imarried” => “True”

Den grønne fargede delen er en Redis Hash -type verdi. I dette tilfellet fikk vi fire felt i hasj og nøkkelen er bruker: 001.

Lagre små dataverdier kompakt

Se for deg at vi skal lagre 100000 feltverdipar i en Redis-database. Den mest typiske måten er å lage 100000 toppnivåer som peker på de relevante verdiene. Denne metodikken kommer ikke til å være effektiv som du kanskje tror. Derfor kan vi bruke hasjene for å optimalisere ytelsen.

Det er en ytelsesgevinst i hashes når en hasj har et lite antall felt. Redis øker tilgangseffektiviteten med et betydelig beløp. Vi kaller dette Redis 'lille hasj lagringsoptimalisering. Derfor kan vi holde 1000 hashene hver med 100 interne felt som vist på følgende:

Det beste med hasj er at de kan lagre opptil 2^32-1 feltverdipar i vanlig tekstformat. Det er en stor mengde data, mer enn 4 milliarder.

Redis Hash -kommandoer

Redis lar deg utføre operasjoner på hasj. Det er rundt 15 hash -kommandoer tilgjengelig for bruk som HSET, heksister, Hget, Hgetall, etc. Det er et par atomoperasjoner tilgjengelig for å utføre på numeriske hasjfeltverdier. Det er atomøkningen og decrement på numeriske verdier ved bruk av Hincrby, og Hincrbyfloat -kommandoer.

Hexists -kommandoen

Hexists -kommandoen brukes til å sjekke om et gitt felt er tilgjengelig i den spesielle hasj på en spesifisert nøkkel. Denne kommandoen har en konstant tidskompleksitet som er betegnet med Big O (1). Derfor er det veldig effektivt å bruke.

Syntaks:

Hexists Key_name Field_name

Key_name : Dette er Redis toppnivå -nøkkelen til denne hasj.

feltnavn : Dette er hashfeltnavnet.

Kommando returverdi

Hexists -kommandoen returnerer en heltallverdi på 1 eller 0 basert på kommandovalueringsresultatene. Den går tilbake til 1 hvis feltet er tilgjengelig i den spesifiserte hasj. Hvis feltet eller hash -tasten ikke er tilgjengelig, går den tilbake til 0.

Praktisk bruk av Hexists -kommandoen

La oss lage en hasj med ett felt og sjekke hvordan kommandoen fungerer. Vi kan bruke HSET-kommandoen til å lage en hasj med ett feltverdipar.

HSET -bruker: 1 Navn Mike

Deretter sjekker vi om hashen er lagt til Redis -databasen med hell. Hgetall-kommandoen kan brukes til å hente alle feltverdiparene for en gitt hasj-tast.

Hgetall -bruker: 1

Produksjon:

La oss nå sjekke heksistene kommandooppførsel på denne hasj:

Hexists bruker: 1 navn

I dette scenariet er brukeren: 1 hash -tasten. Navnet er hasjfeltnavnet. Siden navnefeltet er tilgjengelig i brukeren: 1 hasj, bør det gå tilbake til 1.

La oss sjekke kommandoen med et felt som ikke er tilgjengelig i den gitte hasj.

Hexists bruker: 1 alder

I dette tilfellet er ikke aldersfeltet tilgjengelig i brukeren: 1 hash. Derfor er utgangen 0.

På denne måten kan du manipulere hasjfeltene for deres eksistens på en gitt hasj -nøkkel. Dette er en veldig tidseffektiv operasjon og er nyttig i objektmanipulasjoner i Redis-databaser. Det tar en konstant tid å sjekke eksistensen av det første feltet eller det 100. feltet. Derfor anbefales det å bruke Redis Hashes når du trenger å lagre objekter eller enkle data.

Konklusjon

Redis kan lagre forskjellige typer datastrukturer for en bestemt nøkkel. Hasjene er en av de mest populære datastrukturene som brukes i Redis -databaser. Hashes kan brukes til å representere og manipulere enkle objekter og data effektivt. Redis støtter flere hasjoperasjoner. Heksistene er en av de populære kommandoene for å sjekke eksistensen av et gitt hasjfelt i en hasj -nøkkel.