Redis Pttl

Redis Pttl

Redis bruker nøkkelverdi-par-tilnærmingen for å lagre dataene. Derfor refereres til at alle dataverdiene som er lagret i en Redis -database, referert til av en unik nøkkel.

Disse nøklene har en tendens til å leve for alltid til du sletter dem. Vanligvis kan vi bruke kommandoen 'sett' for å opprette en ny nøkkel og tilordne en verdi til den. I noen scenarier kan det hende du må angi en timeout for en nøkkel.

Eksempel - Angi utløp av passord for tilbakestill lenke med redis -nøkkel

La oss anta at en bruker må tilbakestille Twitter -kontopassordet. Den vanlige prosessen er at brukeren klikker på 'Glemt passord' -knappen i påloggingsvinduet. Dette vil sende en e -post til brukeren med en tilbakestillingskobling. Disse koblingene lever bare i noen minutter eller dager. Da utløper lenken. Vi kan oppnå denne typen oppførsel ved å sende en redis -nøkkel i nettadressen. Hver gang brukeren klikker på denne lenken, vil den omdirigere til tilbakestillingssiden for passordet hvis den gitte tasten ikke har utløpt.

Lag en nøkkel i Redis

Redis 'Set' kommando kan brukes til å lage et nytt nøkkelverdipar i Redis Data Store, som vist i det følgende.

Sett PasswordExpirationLink: Bruker: 01 OldPass: 123456

'PasswordExpirationLink: Bruker: 01' er Redis -nøkkelen og verdien er 'OldPass: 123456'.

Angi en timeout for nøkkelen

Siden nøkkelen er opprettet, kan vi sette en timeout på denne nøkkelen. Det er to måter å sette en timeout.

  1. Bruke Redis 'Set' -kommandoen
  2. Bruke Redis 'utløp "-kommandoen

1. Bruke Redis 'Set' -kommandoen

Kommandoen 'Set' har en parameter som heter 'Ex' som kan brukes til å sette tidsavbruddet på sekunder. La oss lage en nøkkel med en timeout -verdi.

Sett PasswordExpirationLink: Bruker: 02 OldPass: 123456 EX 120

Nøkkelen 'PasswordExpirationLink: Bruker: 02' utløper om 120 sekunder.

2. Bruke Redis 'utløp "-kommandoen

"Utløper" er den mest populære kommandoen som angir en timeoutverdi på en nøkkel.

Utløper PasswordExpirationLink: Bruker: 02 120

Dette er ganske greit sammenlignet med 'sett' -kommandoen. 'PasswordExpirationLink: Bruker: 02' -tasten utløper om 120 sekunder.

Nå skal det være en måte å beregne eller spørre om gjenværende tid til å leve av en nøkkel på. Kommandoen 'PTTL' lar Redis -brukere spørre om dette.

Kommandoen 'PTTL'

'PTTL' returnerer hvor mye tid som er igjen før en Redis -nøkkel utløper. Hvis det ikke er noen tidsavbruddsverdi knyttet til en nøkkel, vil denne kommandoen returnere -1. Hvis Redis -nøkkelen ikke eksisterer, vil den returnere -2.

Syntaks

PTTL -nøkkel

'Key' er Redis -nøkkeltnavnet.

Hvis Redis -nøkkelen eksisterer og nøkkelen er tilknyttet en utløpstid, vil kommandoen 'PTTL' returnere den gjenværende tiden til å bo i millisekunder. Denne kommandoen er veldig lik 'TTL', der den eneste forskjellen er at 'TTL' returnerer den gjenværende tiden til å leve på sekunder.

La oss angi 'PasswordExpirationLink: Bruker: 02' Key's utløpstid til 120 sekunder som i forrige eksempel.

Utløper PasswordExpirationLink: Bruker: 02 120

Da kan vi bruke 'PTTL' -kommandoen for å sjekke den gjenværende tiden for å leve for nøkkelen 'PasswordExpirationLink: Bruker: 02'.

PTTL PasswordExpirationLink: Bruker: 02

Output etter å ha utført kommandoen ovenfor flere ganger:

Vi har satt utløpstiden til 120 sekunder, som er 120000 millisekunder. Utgangen verifiserer det. Den første PTTL -kommandoen returnerer 112030, som betyr 'PasswordExpirationLink: Bruker: 02' -tasten vil utløpe etter 112030 millisekunder eller 112.03 sekunder.

I den siste linjen har -2 blitt returnert. Som sier 'PasswordExpirationLink: Bruker: 02' -tasten er allerede slettet eller ikke eksisterer lenger. Det betyr at nøkkelen allerede har oppfylt utløpstiden og er borte for alltid.

Kommandoen 'PTTL' på en nøkkel uten utløpstid

La oss kjøre 'PTTL' -kommandoen på en nøkkel som ikke har en utløpstid knyttet til den. Først skal vi opprette en ny nøkkel 'PasswordExpirationLink: Bruker: 05'.

Sett PasswordExpirationLink: Bruker: 05 OldPass: 123456

Deretter kjører vi 'PTTL' -kommandoen på Key 'PasswordExpirationLink: Bruker: 05'.

PTTL PasswordExpirationLink: Bruker: 05

Produksjon:

Som forventet returnerte den -1, noe som betyr at det ikke er noen tidsavbrudd knyttet til denne nøkkelen.

Basert på returverdien til 'PTTL' -kommandoen, kan vi la passordet tilbakestille lenken utløpe som vi diskuterte i forrige eksempel.

Konklusjon

Siden Redis er en nøkkelverdibasert datalager, er nøkler den direkte referansen for en hvilken som helst dataverdi. Redis 'Set' kommando brukes til å lage nøkkelverdidata i databasen. Denne kommandoen lar oss sette en timeout når vi oppretter nøkkelverdi-paret. En annen måte å sette timeouts for nøkler på er å bruke "utløpe" -kommandoen. På begge måter kan du stille utløpstiden på sekunder. Kommandoen 'PTTL' kommer godt med når vi trenger å spørre om de gjenværende tiden for å leve for en Redis -nøkkel. Den returnerer den gjenværende tiden i millisekunder, som er forskjellig fra 'TTL' -kommandoen.