Empfohlenes Lernen: Redis-Video-Tutorial
Mit dem EXPIRE-Befehl oder PEXPIRE-Befehl kann der Client das Überleben für einen bestimmten Schlüssel im festlegen Datenbank mit Sekunden- oder Millisekundengenauigkeit. Nach der angegebenen Anzahl von Sekunden oder Millisekunden löscht der Server automatisch Schlüssel mit einer Lebensdauer von 0.
SETEX-Befehl kann die Ablaufzeit für den Schlüssel festlegen, während ein String-Schlüssel festgelegt wird (kann nur für String-Schlüssel verwendet werden)
Ähnlich wie der EXPIRE-Befehl und der PEXPIRE-Befehl kann der Client den EXPIREAT-Befehl oder PEXPIREAT-Befehl verwenden , Legen Sie die Ablaufzeit für einen Schlüssel in der Datenbank mit einer Genauigkeit von Sekunden oder Millisekunden fest. Die Ablaufzeit ist ein UNIX-Zeitstempel. Wenn die Ablaufzeit des Schlüssels erreicht ist, löscht der Server den Schlüssel automatisch aus der Datenbank TTL-Befehl Der PTTL-Befehl akzeptiert einen Schlüssel mit einer Lebensdauer oder Ablaufzeit und gibt die verbleibende Lebensdauer des Schlüssels zurück, d. h. wie lange es dauern wird, bis der Schlüssel automatisch vom Server gelöscht wird. Redis hat vier anders Der Befehl kann verwendet werden, um die Lebensdauer des Schlüssels (wie lange der Schlüssel existieren kann) oder die Ablaufzeit (wann der Schlüssel gelöscht wird) festzulegen:
EXPIRE<key><ttl> Der Befehl wird verwendet, um die Lebensdauer von festzulegen Der Schlüssel zu TTL-Sekunden. Der Befehl
PEXPIRE<key><ttl> wird verwendet, um die Schlüssellebensdauer auf TTL-Millisekunden festzulegen. Der Befehl EXPIREAT<key><timestamp> wird verwendet, um die Ablaufzeit des Schlüssels auf den durch timestamp angegebenen Zeitstempel in Sekunden festzulegen. Der BefehlPEXPIREAT<key><timestamp> wird verwendet, um die Ablaufzeit des Schlüssels auf den durch timestamp angegebenen Zeitstempel in Millisekunden festzulegen.
Prinzip
Obwohl es viele verschiedene Einheiten und unterschiedliche Formen zum Festlegen von Befehlen gibt, werden die drei Befehle EXPIRE, PEXPIRE und EXPIREAT tatsächlich alle mit dem PEXPIREAT-Befehl implementiert:Zur Vereinfachung der Anzeige werden das Alphabetschlüsselobjekt und das Buchschlüsselobjekt im Schlüsselraum- und Ablaufwörterbuch in der Abbildung zweimal wiederholt. In der Praxis verweisen die Schlüssel des Schlüsselraums und die Schlüssel des Ablaufwörterbuchs auf dasselbe Schlüsselobjekt, sodass keine doppelten Objekte vorhanden sind und kein Platz verschwendet wird.
Das Ablaufwörterbuch in der Abbildung speichert zwei Schlüssel-Wert-Paare:
Der Schlüssel des ersten Schlüssel-Wert-Paares ist das Alphabet-Schlüsselobjekt, und der Wert ist 1385877600000, was bedeutet, dass die Ablaufzeit von Das Datenbankschlüsselalphabet lautet 1385877600000 (0:00 Uhr am 1. Dezember 2013).
Der Schlüssel des zweiten Schlüssel-Wert-Paares ist das Buchschlüsselobjekt und der Wert ist 1388556000000, was bedeutet, dass die Ablaufzeit des Datenbankschlüsselbuchs 1388556000000 (0:00 am 1. Januar 2014) beträgt. Wenn der Client den PEXPIREAT-Befehl (oder drei andere Befehle, die in PEXPIREAT-Befehle umgewandelt werden) ausführt, um eine Ablaufzeit für einen Datenbankschlüssel festzulegen, ordnet der Server den angegebenen Datenbankschlüssel und die Ablaufzeit im Ablaufwörterbuch der Datenbank zu.
Nachdem der Server den folgenden Befehl ausgeführt hat
Das Ablaufwörterbuch fügt ein Schlüssel-Wert-Paar hinzu, wobei der Schlüssel das Nachrichtenschlüsselobjekt ist und der Wert 1391234400000 (0:00 am 1. Februar 2014) ist, wie in der Abbildung gezeigt Es folgt der Pseudocode des PEXPIREAT-Befehls. Codedefinition
Der PERSIST-Befehl kann die Ablaufzeit eines Schlüssels entfernen
Der PERSIST-Befehl ist die umgekehrte Operation des PEXPIREAT-Befehls: Der PERSIST-Befehl sucht nach dem Geben Sie den angegebenen Schlüssel im Ablaufwörterbuch ein und geben Sie die Zuordnung von Schlüssel und Wert (Ablaufzeit) im Ablaufwörterbuch frei.
Ermittlung abgelaufener Schlüssel
Mit dem Ablaufwörterbuch kann das Programm die folgenden Schritte verwenden, um zu prüfen, ob ein bestimmter Schlüssel abgelaufen ist: 1) Überprüfen Sie, ob der angegebene Schlüssel im Ablaufwörterbuch vorhanden ist: Wenn er vorhanden ist, dann abrufen die Ablaufzeit des Schlüssels. 2) Überprüfen Sie, ob der aktuelle UNIX-Zeitstempel länger als die Ablaufzeit des Schlüssels ist: Wenn ja, dann ist der Schlüssel abgelaufen, andernfalls ist der Schlüssel nicht abgelaufen. Dieser Prozess kann mit Pseudocode beschrieben werden:Für ein Schlüsselalphabet mit einer Ablaufzeit von 1385877600000 (0:00 Uhr am 1. Dezember 2013):
Wenn die aktuelle Zeit 1383282000000 (1. November 2013) Tag Null ist ), dann gibt der Aufruf von is_expired(alphabet) False zurück, da die aktuelle Zeit kürzer als die Ablaufzeit des Alphabetschlüssels ist.
Wenn die aktuelle Zeit hingegen 1385964000000 (0:00 Uhr am 2. Dezember 2013) ist, gibt der Aufruf von is_expired(alphabet) True zurück, da die aktuelle Zeit größer als die Ablaufzeit des Alphabetschlüssels ist. Empfohlenes Lernen:Redis-Video-Tutorial
Das obige ist der detaillierte Inhalt vonPrinzipielle Analyse der Redis-Einstellung von Überlebens- und Ablaufzeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!