Redis utløp

Redis utløp
Redis -nøkler er vedvarende til du fjerner dem manuelt. I noen tilfeller kan det hende du må lagre de midlertidige nøkkelverdiparene i Redis-butikken. Det er en god praksis å fjerne dem når det ikke er nødvendig. Det er en kjedelig og tidkrevende oppgave å fjerne nøklene manuelt hver gang. Redis har funksjonen for å sette en utløpstid på en gitt nøkkel når du oppretter den eller etter opprettelsen. Vi kaller dette TTL -verdien til en redis -nøkkel.

Angi TTL -verdien når nøkkelen oppretter

Følgende syntaks brukes til å angi utløpstiden for en gitt Redis -nøkkel på opprettelsestidspunktet:

Sett temp_age 24 Eks 5

"TEMP_AGE" -tasten går ut etter 5 sekunder.

Angi TTL -verdien etter at nøkkelen er opprettet

Redis lar deg først opprette nøkkelen og deretter angi en utløpstid for nøkkelen ved å bruke utløpskommandoen som følger:

Sett TEMP_AGE 24
Utløpe temp_age 5

Det er også mulig å spesifisere en utløpsdato som en UNIX -tidsstempel for en gitt Redis -nøkkel ved å bruke utløpskommandoen som følger:

Utløp TEMP_AGE 1669929041

Den spesifiserte UNIX -tidsstempelet er assosiert med følgende menneskelige lesbare dato:

Thu, 1. desember 2022 21:10:41 GMT

"Temp_age" -tasten utløper 01-12-2022 kl. 21:10:41.

Utløpskommandoen

Kommandoen for utløpstid returnerer utløpsdatoen som en UNIX-tidsstempel som er antall sekunder som er beregnet fra UNIX-epokdatoen (1970-01-01T00: 00: 00Z). Denne kommandoen er nyttig når du har flere nøkler i Redis -databasen med utløpstider, og du må vite den nøyaktige utløpsdatoen for en bestemt nøkkel. Følgende er syntaks for utløpskommandoen:

Expiretime redis_key

Kommandoen for utløpstid er veldig rask på grunn av sin O (1) utførelsestidskompleksitet. Hvis det er en utløpstid som er tilknyttet Redis -nøkkelen, returnerer utløpskommandoen utløpstiden på sekunder som en UNIX -tidsstempel. Ellers returnerer kommandoen et negativt tall -1 eller -2:

-1 Svar - Redis -tasten eksisterer, men det er ingen utløpstid (TTL) tilknyttet det.

-2 Svar - Den spesifiserte Redis -tasten eksisterer ikke i databasen.

Bruk sak:

La oss anta at ABC -selskapet trenger å beholde motorbilens reservedeler bestillingshistorie bare for den siste uken. Derfor bruker de en Redis -database for å lagre kundenavnet som nøkkel- og ordrestypen som verdien. Samtidig lagrer de hver nøkkel med en utløpstid på en uke fra opprettelsesdatoen.

John kjøper en motor fra ABC-selskapet 2022-12-02. Selskapet må legge denne posten til Redis -databasen er som følger:

Sett Customer_John "Engine"

Også "Customer_John" -tasten skal utløpe etter en uke fra 2022-12-02. Så utløpsdatoen er 2022-12-09 kl. 12:00. I dette tilfellet bruker vi utløpskommandoen for å angi utløpsdatoen for denne nøkkelen.

Utløpskommandoen godtar en UNIX -tidsstempel på få sekunder. Vi må oppgi utløpsdatoen som en UNIX -tidsstempel som følger:

Den tilhørende UNIX-tidsstempel for utløpsdatoen (2022-12-09 12:00) er 1670524200).

La oss angi utløpsdatoen som følger:

Utløp Customer_john 1670524200

Her legger vi til bare en kundebestillingsoppføring i databasen. Men det er ikke tilfelle når det gjelder et virkelig verdensscenario. Det kan være hundrevis av kundebestillinger som blir behandlet per uke. Det er vanskelig å følge med på utløpsdatoer for alle kundebestillingsregistreringer.

Expiretime -kommandoen kommer godt med i disse typer scenarier. Hvis du har Redis -nøkkelen, hjelper utløpskommandoen deg til å hente den tilhørende utløpsdatoen på sekunder fra epokdatoen.

La oss hente utløpsdatoen for Customer_John -nøkkelen som følger:

Expiretime customer_john

Som forventet blir UNIX -tidsstempelet returnert. Hvis du konverterer denne tidsstempelverdien til et menneskelig lesbart format, bør den gi den nøyaktige datoen vi angir i forrige trinn.

Kommandoen for utløpstid kan brukes når du har en stor mengde data i Redis -databasen din, og du må vite om utløpsdatoene for noen av tastene.

Når ingen utløpstid for en redis -nøkkel

La oss opprette en Redis -nøkkel uten utløpstid (TTL) som følger:

Sett No_TTL_Key "No TTL Scenario"

Hvis vi utfører utløpskommandoen for denne nøkkelen, bør den returnere -1. Dette er fordi "no_ttl_key" ikke er assosiert med en TTL.

Expiretime no_ttl_key

Når nøkkelen ikke eksisterer

Hvis vi kjører utløpskommandoen ved å spesifisere en nøkkel som ikke eksisterer i den nåværende Redis -databasen, bør den returnere -2 -svaret som følger:

Expiretime doesnt_exist_key

Konklusjon

For å konkludere, brukes Redis utløpskommandoen til å hente utløpsdatoen eller tid for en gitt nøkkel. Det returnerer en UNIX -tidsstempel på få sekunder. Hvis det ikke er noen utløpstid som er tilknyttet en gitt nøkkel, returnerer kommandoen for utløpstid negativ 1. Kommandoen returnerer -2 hvis den spesifiserte tasten ikke eksisterer. Det viktigste er at denne kommandoen kan brukes i høyytelsesapplikasjoner på grunn av den raske utførelsen med O (1) tidskompleksitet.