Redis Expiretime

Redis Expiretime
Le chiavi Redis sono persistenti fino a quando non le rimuovi manualmente. In alcuni casi, potrebbe essere necessario archiviare le coppie temporanee di valore chiave nel Redis Store. È una buona pratica rimuoverli quando non è necessario. È un compito noioso e che richiede tempo per rimuovere manualmente le chiavi ogni volta. Redis ha la funzione per impostare un tempo di scadenza su una determinata chiave quando lo si crea o dopo la creazione. Lo chiamiamo il valore TTL di una chiave Redis.

Imposta il valore TTL quando la chiave sta creando

La seguente sintassi viene utilizzata per impostare il tempo di scadenza per una determinata chiave Redis al momento della creazione:

Imposta temp_age 24 ex 5

La chiave "temp_age" scade dopo 5 secondi.

Imposta il valore TTL dopo la creazione della chiave

Redis ti consente di creare prima la chiave e quindi impostare un tempo di scadenza per la chiave utilizzando il comando scadenza come segue:

Imposta temp_age 24
Scadere temp_age 5

È anche possibile specificare una data di scadenza come un timestamp UNIX per una determinata chiave Redis usando il comando di scadenza come segue:

ESCIREAT TEMP_AGE 1669929041

Il timestamp UNIX specificato è associato alla seguente data di leggibile umana:

Thu, 01 dic 2022 21:10:41 GMT

La chiave "Temp_age" scade il 01-12-2022 alle 21:10:41.

Il comando espirato

Il comando espirale restituisce la data di scadenza come un timestamp UNIX che è il numero di secondi che viene calcolato dalla data di epoca unix (1970-01-01T00: 00: 00Z). Questo comando è utile quando si dispone di diverse chiavi nel database Redis con tempi di scadenza e è necessario conoscere la data di scadenza esatta di una chiave specifica. Quanto segue è la sintassi del comando espirale:

Escapetime Redis_key

Il comando espirato è molto veloce a causa della sua complessità del tempo di esecuzione O (1). Se c'è un tempo di scadenza che è associato alla chiave Redis, il comando in espirazione restituisce il tempo di scadenza in pochi secondi come un timestamp UNIX. Altrimenti, il comando restituisce un numero negativo -1 o -2:

-1 Risposta - La chiave Redis esiste ma non c'è tempo di scadenza (TTL) ad essa associato.

-2 Risposta - La chiave Redis specificata non esiste nel database.

Caso d'uso:

Supponiamo che la compagnia ABC debba mantenere la cronologia dei pezzi di ricambio per auto solo per l'ultima settimana. Quindi, usano un database Redis per archiviare il nome del cliente come chiave e tipo di ordine come valore. Allo stesso tempo, memorizzano ogni chiave con un tempo di scadenza di una settimana dalla data di creazione.

John acquista un motore dalla ABC Company il 2022-12-02. La società deve aggiungere questo record al database Redis è il seguente:

Imposta customer_john "motore"

Inoltre, la chiave "Customer_John" dovrebbe scadere dopo una settimana dal 2022-12-02. Quindi, la data di scadenza è 2022-12-09 alle 12:00. In questo caso, utilizziamo il comando di scadenza per impostare la data di scadenza per questa chiave.

Il comando di espirazione accetta un timestamp unix in pochi secondi. Dobbiamo fornire la data di scadenza come timestamp UNIX come segue:

Il timestamp Unix associato per la data di scadenza (2022-12-09 12:00) è 1670524200).

Imposta la data di scadenza come segue:

ESCIREAT Customer_John 1670524200

Qui, aggiungiamo solo un record dell'ordine del cliente al database. Ma non è il caso in cui si tratta di uno scenario del mondo reale. Ci possono essere centinaia di ordini dei clienti che vengono elaborati a settimana. È difficile tenere traccia delle date di scadenza per tutti i record dell'ordine dei clienti.

Il comando espirale è utile in questi tipi di scenari. Se si dispone della chiave Redis, il comando espirale ti aiuta a recuperare la data di scadenza associata in pochi secondi dalla data dell'epoca.

Prendiamo la data di scadenza per la chiave Customer_John come segue:

Escapetime Customer_John

Come previsto, il timestamp UNIX viene restituito. Se converti questo valore di timestamp in un formato leggibile dall'uomo, dovrebbe dare la data esatta che abbiamo impostato nel passaggio precedente.

Il comando espirale può essere utilizzato quando si dispone di una grande quantità di dati nel tuo database Redis e è necessario conoscere le date di scadenza di una qualsiasi delle chiavi.

Quando non c'è tempo di scadenza per una chiave Redis

Creiamo una chiave Redis senza un tempo di scadenza (TTL) come segue:

Imposta No_TTL_KEY "No TTL Scenario"

Se eseguiamo il comando esplosivo per questa chiave, dovrebbe restituire il -1. Questo perché il "no_ttl_key" non è associato a un TTL.

ESCIRETIME NO_TTL_KEY

Quando la chiave non esiste

Se eseguiamo il comando ExpireTime specificando una chiave che non esiste nel database Redis corrente, dovrebbe restituire la risposta -2 come segue:

ESCIRETIME dodnt_exist_key

Conclusione

Per concludere, il comando Redis Expiretime viene utilizzato per recuperare la data di scadenza o l'ora di una determinata chiave. Restituisce un timestamp unix in pochi secondi. Se non vi è alcun tempo di scadenza associato a una determinata chiave, il comando espirale restituisce negativo 1. Il comando restituisce -2 se la chiave specificata non esiste. Ancora più importante, questo comando può essere utilizzato in applicazioni ad alte prestazioni a causa della sua rapida esecuzione con O (1) complessità del tempo.