I denne guiden skal vi utforske hvordan du utløper nøkler i Redis. Som tittelen antyder, vil vi fokusere på hash -tast utløp, men det generelle konseptet gjelder også for andre nøkler.”
Forutsetninger
For å utføre trinnene som er demonstrert i denne guiden, trenger du følgende komponenter klare til å gå:
Redis Keys
Redis -nøkler er vedvarende som standard, noe som betyr at enhver oppføring vil forbli intakt med mindre slettet manuelt. Selv om denne konfigurasjonen er bra generelt, er det situasjoner der du kanskje vil at nøklene skal utløpe etter en viss tid. Med andre ord, vil du ha det flyktige nøkler.
Nå støtter Redis flere typer nøkler, kategorisert av datatypen. Her er noen av de vanligste datatypene du vil møte:
Sjekk ut den offisielle Redis-dokumentasjonen på datatyper for mer dyptgående info. For denne guiden vil vi fokusere på hasjetastene.
Hash -nøkler
I Redis er hashes kart mellom felt (streng) og verdier (streng). På grunn av denne strukturen er det den perfekte datatypen for å representere objekter. La oss forklare med et eksempel. Ta en titt på følgende struktur:
Her kan vi betrakte user_database som en hasjtast. Inne i denne hashen har vi flere feltverdipar, som representerer brukernavn og passord. La oss implementere det i Redis:
$ Hmset user_database user_1 "DAVID" PASS_1 "PASSWORD_1"
$ Hmset user_database user_2 "alex" pass_2 "passord_2"
$ Hmset user_database user_3 "mason" pass_3 "passord_3"
Som demonstrert bruker Redis kommandoen HMSET for å registrere hasjetastene. For å hente dataene som er lagret i nøkkelen, må vi bruke HGET -kommandoen:
$ Hgget user_database user_1
$ Hgget user_database pass_3
For å få informasjonen om alle feltene samtidig, bruk Hgetall -kommandoen i stedet:
$ Hgetall user_database
I Redis kan en hash -nøkkel ha opptil 2^32 - 1 (mer enn 4 milliarder) feltverdipar. Det meste av tiden brukes hasjes til å representere objekter. På grunn av sin natur kan hashes imidlertid være nyttige i mange situasjoner.
Redis Key utløper
Alle Redis -objektene har utløpstid. Som standard er verdien satt til aldri. Ved å endre denne verdien kan vi imidlertid angi Redis -nøkler som vil utløpe automatisk etter en fast tid. Når utløpstiden er bestått, blir nøkkelen slettet fra databasen.
Selv om det er en generalisert forklaring, er den faktiske mekanismen for nøkkelutløp noe komplisert. Ta en titt på den offisielle Redis-dokumentasjonen for en grundig forklaring av nøkkelutløpsmekanismen.
For å sette en utløpstid, vil vi bruke utløpskommandoen. Følgende eksempel demonstrerer bruken av dem:
$ Set hei "den raske brune reven"
$ Utløp hei 999
Her vil nøkkelen Hello utløpe om 999 sekunder. For å sjekke tiden som er igjen for en nøkkel å utløpe, bruk TTL -kommandoen:
$ Ttl Hei
Utgangen vil returnere tiden igjen før nøkkelen utløper. I tilfelle av en feil kan TTL imidlertid returnere forskjellige verdier:
Utløpende hash -nøkkel
Nå som vi forstår hasjetastene og hvordan viktige utløp fungerer, tid til å sette dem ut i handling.
Fortsetter fra hash -nøkkeleksemplet, la oss sette en utløpstid til User_Database:
$ Utløp bruker_database 999
For å bekrefte denne handlingen, sjekk TTL -verdien til User_Database:
$ Ttl user_database
Utløpe alternativer
Utløpskommandoen kommer med noen tilleggsalternativer som implementerer noen tilleggsbetingelser når du setter utløpstiden. De er som følger:
Ved implementering av alternativene, vil kommandoen se slik ut:
$ Utløper
Fortsetter fra forrige eksempel, la oss oppdatere utløpstiden for User_Database:
$ Utløp bruker_database 9999 GT
Kontroller om utløpstiden ble oppdatert:
$ Ttl user_database
Siste tanker
I denne guiden utforsket vi å utløpe en hasjnøkkel i Redis. Redis kommer med en dedikert kommando utløper for å angi utløpstid for nøkler. Vi demonstrerte hvordan du bruker denne kommandoen til å utløpe en demo -nøkkel. Vi har også undersøkt forskjellige alternativer for utløp av kommandoen støtter.
Interessert i å lære mer om Redis? Redis-underkategorien er full av dyptgående guider. Lær mer om vanlige Redis -kommandoer, BitCount -kommandoen, rørledning osv.
Glad databehandling!