Redis -Verfallszeit

Redis -Verfallszeit
Redisschlüssel sind hartnäckig, bis Sie sie manuell entfernen. In einigen Fällen müssen Sie möglicherweise die temporären Schlüsselwertpaare im Redis Store speichern. Es ist eine gute Praxis, sie zu entfernen, wenn sie nicht benötigt werden. Es ist eine mühsame und zeitaufwändige Aufgabe, die Schlüssel jedes Mal manuell zu entfernen. Redis hat die Funktion, eine Ablaufzeit auf einem bestimmten Schlüssel zu setzen, wenn Sie sie erstellen oder nach der Erstellung. Wir nennen dies den TTL -Wert eines Redis -Schlüssels.

Legen Sie den TTL -Wert fest, wenn der Schlüssel erstellt wird

Die folgende Syntax wird verwendet, um die Ablaufzeit für einen bestimmten Redis -Schlüssel zur Erstellungszeit festzulegen:

Setzen Sie temp_age 24 ex 5

Die Schlüssel "temp_age" läuft nach 5 Sekunden ab.

Setzen Sie den TTL -Wert nach dem Erstellen des Schlüssels

Mit Redis können Sie zuerst den Schlüssel erstellen und anschließend eine Ablaufzeit für den Schlüssel unter Verwendung des Befehls von Ablauf wie folgt festlegen:

Setzen Sie temp_age 24
Ablauf temp_age 5

Es ist auch möglich, ein Ablaufdatum als UNIX -Zeitstempel für einen bestimmten Redis -Schlüssel unter Verwendung des Verfallsbefehls wie folgt anzugeben:

Ablauf temp_age 1669929041

Der angegebene Unix -Zeitstempel ist dem folgenden menschlichen lesbaren Datum verbunden:

Thu, 01. Dezember 2022 21:10:41 GMT

Die Schlüssel "temp_age" läuft am 01.12.2022 um 21:10:41 ab.

Der Kommando der Vergangenheit

Der Befehl der Ablaufzeit gibt das Ablaufdatum als UNIX-Zeitstempel zurück, der die Anzahl der Sekunden ist, die aus dem UNIX-Epoch-Datum berechnet wird (1970-01-01T00: 00: 00Z). Dieser Befehl ist nützlich, wenn Sie mehrere Schlüssel in der Redis -Datenbank mit Ablaufzeiten haben und das genaue Ablaufdatum eines bestimmten Schlüssels kennen müssen. Das Folgende ist die Syntax des Befehls der Vergangenheit:

Versiegelter redis_key

Der Befehl des Verfallszeit ist aufgrund seiner O (1) -Komplexität der Ausführungszeit sehr schnell. Wenn es eine Ablaufzeit gibt, die mit dem Redis -Schlüssel zugeordnet ist, gibt der Befehl des Verfallszeit die Ablaufzeit in Sekunden als Unix -Zeitstempel zurück. Andernfalls gibt der Befehl eine negative Zahl -1 oder -2 zurück:

-1 Antwort - Der Redis -Schlüssel ist vorhanden, aber es ist keine Ablaufzeit (TTL) zugeordnet.

-2 Antwort - Der angegebene Redis -Schlüssel gibt es in der Datenbank nicht.

Anwendungsfall:

Nehmen wir davon aus. Daher verwenden sie eine Redis -Datenbank, um den Kundennamen als Schlüssel- und Bestellentyp als Wert zu speichern. Gleichzeitig speichern sie jeden Schlüssel mit einer Ablaufzeit von einer Woche nach dem Erstellungsdatum.

John kauft einen Motor der ABC Company am 2022-12-02. Das Unternehmen muss diesen Datensatz zur Redis -Datenbank hinzufügen, ist wie folgt:

Setzen Sie Customer_John "Engine"

Außerdem sollte der Schlüssel „Customer_John“ nach einer Woche von 2022-12-02 ablaufen. Das Ablaufdatum ist also 2022-12-09 um 12:00 Uhr. In diesem Fall verwenden wir den Befehl Abirreat, um das Ablaufdatum für diesen Schlüssel festzulegen.

Der Verfallsbefehl akzeptiert einen Unix -Zeitstempel in Sekunden. Wir müssen das Ablaufdatum als Unix -Zeitstempel wie folgt angeben:

Der zugehörige UNIX-Zeitstempel für das Ablaufdatum (2022-12-09 12:00 Uhr) ist 1670524200).

Setzen wir das Ablaufdatum wie folgt fest:

Ablauf Customer_John 1670524200

Hier fügen wir der Datenbank nur einen Kundenbestelldatensatz hinzu. Aber es ist nicht der Fall, wenn es um ein reales Szenario geht. Es können Hunderte von Kundenaufträgen geben, die pro Woche bearbeitet werden. Es ist schwierig, die Ablaufdaten für alle Kundenauftragsunterlagen im Auge zu behalten.

Der Befehl der Vergangenheit ist in solchen Szenarien nützlich. Wenn Sie den Redis -Schlüssel haben, hilft Ihnen der Befehl des Verfallszeit, das zugehörige Ablaufdatum in Sekunden nach dem Epochendatum abzurufen.

Lassen Sie uns das Ablaufdatum für den Customer_John -Schlüssel wie folgt abrufen:

Vergleiche Customer_John

Wie erwartet wird der Unix -Zeitstempel zurückgegeben. Wenn Sie diesen Zeitstempelwert in ein menschenlesbares Format konvertieren, sollte er das genaue Datum angeben, das wir im vorherigen Schritt festgelegt haben.

Der Befehl des Verfallszeit kann verwendet werden, wenn Sie eine große Menge an Daten in Ihrer Redis -Datenbank haben und Sie über die Ablaufdaten eines der Schlüssel informieren müssen.

Wenn keine Ablaufzeit für einen Redis -Schlüssel

Erstellen wir einen Redis -Schlüssel ohne Ablaufzeit (TTL) wie folgt:

Setzen Sie NO_TTL_KEY "kein TTL -Szenario"

Wenn wir den Befehl zur Zeit für diesen Schlüssel ausführen, sollte er die -1 zurückgeben. Dies liegt daran.

Ablauf der no_ttl_key

Wenn der Schlüssel nicht existiert

Wenn wir den Befehl der Vergangenheit ausführen, indem wir einen Schlüssel angeben, der in der aktuellen Redis -Datenbank nicht vorhanden ist, sollte die Antwort -2 wie folgt zurückgegeben werden:

Ablaufzeit nicht_exist_key

Abschluss

Abschließend wird der Befehl Redis -Verfallszeit verwendet, um das Ablaufdatum oder die Uhrzeit eines bestimmten Schlüssels abzurufen. Es gibt einen Unix -Zeitstempel in Sekunden zurück. Wenn es keine Ablaufzeit gibt, die mit einem bestimmten Schlüssel zugeordnet ist, gibt der Befehl der Ablaufzeit negativ 1 zurück 1. Der Befehl gibt -2 zurück, wenn der angegebene Schlüssel nicht vorhanden ist. Am wichtigsten ist, dass dieser Befehl aufgrund seiner schnellen Ausführung mit o (1) Zeitkomplexität in Hochleistungsanwendungen verwendet werden kann.