Redis Hash -manipulasjon
Redis Hash kan identifiseres som en datastruktur for feltverdi. Dette kan lagres på en spesifisert redis -tast som vist i følgende illustrasjon:
Vanligvis kan hashfeltverdiene lagre streng, heltall og float -data. En av atomoperasjonene som vi kan utføre på hasj er økningen eller reduksjonen av heltallverdiene som er tilordnet et gitt hasjfelt.
Hincrby -kommandoen brukes til å utføre økning/reduksjon av en heltallverdi. I de følgende seksjoner vil vi diskutere mer om praktisk bruk av Hincrby Hash -kommandoen.
Hincrby -kommandoen
Syntaks:
Hincrby redis_key hash_field_name inkrement_by_value
redis_key: Den øverste nøkkelen til Redis-butikken
hash_field_name: Den unike identifikatoren til hasjfeltet
inkrement_by_value: Heltallverdien av trinnsargumentet
Returverdien til Hincrby -kommandoen er et heltall. Det er verdien av hasjfeltet etter at operasjonen er utført. De inkrement_by_value Argument støtter de 64-biters signerte heltallene som muliggjør vedtakelse av både positive og negative tall.
Når det gitte hasjfeltet ikke eksisterer
La oss si at vi har en Redis Hash -nøkkel Bruker: 001 med ett felt som heter id. Verdien av id Feltet er 10. Hvis vi prøver å øke hasjverdien med 5 for en ikke-eksisterende nøkkel alder, Redis vil skape et nytt felt alder og tilordne verdien til 5.
Når den spesifiserte Redis -nøkkelen ikke eksisterer
Anta at vi passerer nøkkelen som Bruker: 002 til Hincrby -kommandoen med feltet alder og økningsverdien av 10. Siden Bruker: 002 Nøkkelen er ikke tilgjengelig i Redis -butikken, den vil opprette en ny nøkkel Bruker: 002 med et aldersfelt. Verdien av aldersfeltet vil være 10 som er den vedtatte trinns argumentverdi.
Praktisk bruk
Det er mange tilfeller i den virkelige verden av Hincrby Hash-kommandoen:
Den største fordelen med Hincrby -operasjonen er at den ikke trenger en eksplisitt leseoperasjon for å oppdatere hasjverdien. Du kan direkte oppdatere Redis -butikkens hasjverdi. Dette gjør operasjonene virkelig fort.
Eksempel 01 - Fanger bruk og kostnad per bruker
La oss anta at vi må lagre bruks- og kostnadsdata per bruker i et gitt system. Derfor vil vi identifisere hver bruker med en redis -nøkkel. Bruken og kostnadene vil være hasjfeltene for den aktuelle Redis -nøkkelen.
HMSET -bruker: 001 Bruk 50 Kostnad 1500
Vi kan bruke HMSet Hash -kommandoen for å angi flere felt for hasj.
La oss sjekke om brukeren: 001 Hash er lagret riktig i datalageret.
Hgetall -bruker: 001
Produksjon:
Anta at brukeren brukte ytterligere 10 ressurser i systemet, og det vil koste ytterligere 500 dollar. Nå kan vi enkelt bruke Hincrby Hash -kommandoen for å oppdatere dataene for Bruker: 001.
Hincrby Bruker: 001 Bruk 10
Hincrby Bruker: 001 kostet 500
Produksjon:
La oss sjekke brukeren: 001 hashverdier.
Hgetall -bruker: 001
Produksjon:
Eksempel 02 - Å redusere enhetstellingen i handlekurven
I handlekurvene må vi alltid utføre reduksjonsoperasjonene på tellingen av varer når brukeren fjerner et element. La oss lagre varen teller for Bruker: 002.
HMSET -bruker: 002 ITEMA 10 ITEMB 5
I dette tilfellet tildelte vi ITEMA og Itemb teller som henholdsvis 10 og 5. La oss sjekke brukeren: 002 data.
Hgetall -bruker: 002
Produksjon:
La oss anta at Bruker: 002 fjerner 2 itemas og 5 items. Hincrby -kommandoen kan brukes til å utføre denne reduksjonsoperasjonen ved å passere -2 og -5 heltall som økningsargumenter.
Hincrby Bruker: 002 Itema -2
Hincrby Bruker: 002 Itemb -5
Produksjon:
Hincrby -kommandoen er kraftig og effektiv der både økningen og decrement -operasjonene kan utføres ved hjelp av samme kommando med et signert økning. Denne kommandoen har konstant tidskompleksitet. Derfor er det veldig raskt å utføre trinn/reduksjonsoperasjoner på hashes.
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 -databasene. Hashes kan brukes til å representere og manipulere enkle objekter og data effektivt. Redis støtter flere hasjoperasjoner. Hincrby er en av de populære kommandoene for å øke og redusere heltallverdiene for et gitt hasjfelt. Den støtter de 64-biters signerte heltallene som økningsverdi. Derfor kan både økningen og decrement -operasjonene utføres ved hjelp av samme kommando.