Hur man upphör att gälla nycklar i Redis


Hantera livslängden på nycklar i Redis

Introduktion

Redis, en populär databas med öppen källkod, lagrar data direkt i minnet. Den erbjuder stöd för olika datastrukturer, inklusive strängar, listor, hash-tabeller och mängder. En särskilt användbar egenskap är möjligheten att tilldela nycklar ett utgångsdatum. Detta gör det möjligt att automatiskt radera nycklar efter en bestämd tid, vilket är praktiskt för temporär datahantering eller efterlevnad av regelverk.

I Redis finns det flera metoder för att ange förfallotider för nycklar. Dessa inkluderar:

  • EXPIRE: Definierar en nyckels giltighetstid i sekunder.
  • PEXPIRE: Anger en nyckels giltighetstid i millisekunder.
  • EXPIREAT: Fastställer en nyckels utgångstid baserat på en Unix-tidsstämpel.
  • PEXPIREAT: Fastställer en nyckels utgångstid baserat på en Unix-tidsstämpel i millisekunder.

Metoder för att avsluta nyckelns giltighet

Nedan beskrivs de olika kommandon som används för att kontrollera när en nyckel ska upphöra att gälla:

Kommando: EXPIRE

Kommandot EXPIRE kräver en nyckel och ett antal sekunder som input. Nyckeln kommer automatiskt att raderas efter den angivna tidsperioden.

Exempel:


EXPIRE min_nyckel 3600

Detta kommando gör att nyckeln min_nyckel förfaller efter 3600 sekunder (en timme) från tidpunkten då kommandot körs.

Kommando: PEXPIRE

Med PEXPIRE anges giltighetstiden för en nyckel i millisekunder. Nyckeln tas bort när den specificerade millisekundperioden har löpt ut.

Exempel:


PEXPIRE min_nyckel 3600000

Här förses nyckeln min_nyckel med en livslängd på 3600000 millisekunder, vilket motsvarar en timme, räknat från den aktuella tidpunkten.

Kommando: EXPIREAT

Kommandot EXPIREAT använder en Unix-tidsstämpel som referenspunkt för nyckelns utgångstid. Nyckeln kommer att upphöra att gälla vid den angivna tidpunkten.

Exempel:


EXPIREAT min_nyckel 1659472400

Detta ställer in utgångsdatumet för nyckeln min_nyckel till den 1 augusti 2023 (1659472400 Unix-tidsstämpel).

Kommando: PEXPIREAT

Liksom EXPIREAT, använder PEXPIREAT en Unix-tidsstämpel för att bestämma nyckelns utgångstid, men i millisekunder. Nyckeln kommer att tas bort vid den specificerade tidsstämpeln.

Exempel:


PEXPIREAT min_nyckel 1659472400000

Här anges utgångsdatumet för nyckeln min_nyckel som 1659472400000 millisekunder, motsvarande den 1 augusti 2023.

Kontrollera nyckelns återstående giltighetstid

Du kan använda kommandot TTL för att se hur länge en nyckel är giltig. Kommandot returnerar antalet sekunder som återstår innan nyckeln löper ut.

Exempel:


TTL min_nyckel

Om kommandot returnerar -1, betyder det att nyckeln inte har något utgångsdatum.

Ta bort en nyckel manuellt

Om du behöver ta bort en nyckel innan dess utgångsdatum, kan du använda kommandot DEL. Det tar bort nyckeln omedelbart från databasen.

Exempel:


DEL min_nyckel

Sammanfattning

Att använda förfallotider för nycklar i Redis är en effektiv metod för att hantera temporära data eller uppfylla vissa compliance-krav. Du kan välja mellan olika metoder för att ange dessa tidsgränser. Med hjälp av kommandon som EXPIRE, PEXPIRE, EXPIREAT och PEXPIREAT kan du enkelt styra nycklarnas livslängd och säkerställa att data tas bort när den inte längre behövs.

Vanliga frågor (FAQ)

1. Hur kan jag se om en nyckel har ett utgångsdatum?
Använd kommandot TTL för att ta reda på hur länge en nyckel är giltig.

2. Kan jag ändra utgångsdatumet för en nyckel?
Ja, du kan använda EXPIRE, PEXPIRE, EXPIREAT eller PEXPIREAT för att sätta ett nytt utgångsdatum.

3. Vad händer om jag försöker använda en nyckel som har gått ut?
Du kommer att få ett felmeddelande om du försöker komma åt en nyckel som har upphört att gälla.

4. Hur tar jag bort en nyckel innan den upphör att gälla?
Använd kommandot DEL för att ta bort en nyckel direkt.

5. Kan jag ange ett utgångsdatum för en nyckel som redan finns?
Ja, med kommandona EXPIRE, PEXPIRE, EXPIREAT och PEXPIREAT kan du sätta ett utgångsdatum på befintliga nycklar.

6. Vad är skillnaden mellan EXPIRE och PEXPIRE?
EXPIRE anger giltighetstiden i sekunder, medan PEXPIRE använder millisekunder.

7. Vad är skillnaden mellan EXPIREAT och PEXPIREAT?
EXPIREAT använder en Unix-tidsstämpel för utgångsdatumet, medan PEXPIREAT använder en Unix-tidsstämpel i millisekunder.

8. Kan jag ange flera utgångsdatum för en nyckel?
Nej, du kan bara ha ett utgångsdatum per nyckel.