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.