Redis Hash Fields
Hashes er en populær datatype i Redis-butikker fordi de omfattende kan representere gjenstander i den virkelige verden. Objekter i den virkelige verden inneholder felt som kan tilordnes verdier, som vist i det følgende.
I Redis, hashmap datastruktur bestemmelser navnverdipar. Ett navnverdipar kan identifiseres som et felt i en virkelig enhet. La oss kartlegge ovennevnte ansattes forekomst til en Redis -hasj.
I eksemplet ovenfor fikk vi den øverste redis-nøkkelen "Ansatt: 1”, Hvor vi lagrer hasj. Det er fire hasjfelt som representerer fire attributter til ansattes objekt. Redis Hashes kan lagre mer enn 4 milliarder hasjfelt som er mer enn nok til å representere objektene dine. Det beste er at det fremdeles tar minimal plass i Redis -databaseinstansen. Det er mer effektivt å opprettholde 1000 hasjfelt innen 10 Redis-nøkler på toppnivå for å lagre 10000 nøkkelverdi-data enn å lagre den mengden data i 10000 på toppnivå Redis-nøkler.
Redis hlen -kommando
I noen applikasjoner er det nødvendig å telle antall egenskaper eller felt tilgjengelig for et gitt objekt. Hvis den er lagret i en Redis -hasj, er det en kommando borte fra å hente antall hasjfelt på den spesifiserte tasten. “Hlen”Kommando kan brukes til å telle antall hasjfelt i en gitt hasj.
Syntaks
1 | Hlen hash_key |
hash_key: Dette er den øverste redis-nøkkelen som hasj har blitt lagret på.
Denne kommandoen returnerer en heltallverdi som er antall hasjfelt som er lagret på en gitt nøkkel. Når hash_key ikke eksisterer, vil denne kommandoen returnere 0. Denne kommandoen har konstant tidskompleksitet O (1), som motiverer deg til å bruke den i høyytelsesapplikasjoner.
Eksempel - Teller antall varer i en handlekurv
La oss anta at vi bruker Redis -databasen for å lagre handlekurvartikler. Tanken er å identifisere hver kunde med en redis -nøkkel. Hver Redis -nøkkel lagrer flere hasjfelt som representerer en handlekurvvare. Monten for handlekurven vil se ut som følgende.
Vi kan bruke HSET -kommandoen til å legge til noen handlekurver for “Kunde: 1”.
1 | HSET -kunde: 1 eple 10 øl 5 melk 2 |
Nå kunden: 1 objekt skal se ut som følgende.
Det er 3 felt lagret på “Kunde: 1” -nøkkel. Vi bruker HLEN -kommandoen for å telle antall felt på “Kunden: 1” -tasten.
1 | HLEN -kunde: 1 |
Produksjon:
Utgangen er 3, som forventet.
La oss slette "øl" -feltet på Kunde: 1 nøkkel. HDEL -kommandoen kan brukes til å slette et felt fra en gitt nøkkel.
1 | HDEL -kunde: 1 øl |
Nå kan vi sjekke de eksisterende hasjfeltene ved å kjøre Hgetall -kommandoen.
1 | Hgetall kunde: 1 |
Produksjon:
"Øl: 5" -feltet er blitt slettet med hell. La oss telle antall felt igjen ved hjelp av HLEN -kommandoen.
1 | HLEN -kunde: 1 |
Siden vi bare fikk to hasjfelt igjen på nøkkelen “Kunde: 1”, skal utgangen være 2.
Produksjon:
Det anbefales å bruke HLEN -kommandoen når det er krav om å telle antall hasjfelt som er lagret på en gitt tast. Det er en veldig rask og enkel kommando å bruke i dine Redis-baserte applikasjoner.
La oss også sjekke utdataene for ikke-eksistensnøkkelen.
1 | HLEN ikke-eksistens |
Produksjon:
Utgangen er 0, som forventet.
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. HLEN kan brukes til å telle antall hasjfelt som er lagret på en gitt Redis -nøkkel. Vanligvis returnerer det et heltall som er tellingen av hasjfeltene. Hvis Redis -nøkkelen ikke eksisterer, vil den returnere 0. Det er veldig raskt siden vi ikke trenger å utføre en egen leseoperasjon.