Redis utilizza l'approccio della coppia di valore chiave per archiviare i suoi dati. Quindi, tutti i valori dei dati archiviati in un database Redis sono citati da una chiave univoca.
Queste chiavi tendono a vivere per sempre fino a quando non li elimini. Di solito, possiamo utilizzare il comando "Imposta" per creare una nuova chiave e assegnare un valore ad essa. In alcuni scenari, potrebbe essere necessario impostare un timeout per una chiave.
Esempio: impostare la scadenza del collegamento reimpostato password con la chiave Redis
Supponiamo che un utente debba ripristinare la password dell'account Twitter. Il solito processo è che l'utente fa clic sul pulsante "Password dimenticata" nella finestra di accesso. Ciò invierebbe un'e -mail all'utente con un collegamento di reimpostazione della password. Questi collegamenti vivono solo per pochi minuti o giorni. Quindi il collegamento scadrà. Possiamo ottenere questo tipo di comportamento passando una chiave Redis nell'URL. Ogni volta che l'utente fa clic su questo link, reindirizzerà alla pagina di reimpostazione della password se il tasto indicato non è scaduto.
Crea una chiave in Redis
Il comando Redis 'Set' può essere utilizzato per creare una nuova coppia di valore chiave nel Redis Data Store, come mostrato nel seguente.
Imposta password -espirationLink: utente: 01 OldPass: 123456
Il "UspassistalSpirationLink: utente: 01" è la chiave Redis e il valore è "OldPass: 123456".
Imposta un timeout per la chiave
Da quando è stata creata la chiave, possiamo impostare un timeout su questa chiave. Esistono due modi per impostare un timeout.
1. Utilizzo del comando Redis 'Set'
Il comando "set" ha un parametro chiamato "ex" che può essere utilizzato per impostare il timeout in secondi. Creiamo una chiave con un valore di timeout.
Imposta password -espirationLink: utente: 02 OldPass: 123456 Ex 120
Il tasto 'Patrimonio di ExpirationLink: utente: 02' scadrà in 120 secondi.
2. Utilizzo del comando di Redis 'Expire'
Il "scadenza" è il comando più popolare per impostare un valore di timeout su una chiave.
scadenza password -espirationlink: utente: 02 120
Questo è abbastanza semplice rispetto al comando "set". Il tasto 'Usprima di ExpirationLink: utente: 02' scadrà in 120 secondi.
Ora, dovrebbe esserci un modo per calcolare o interrogare il tempo rimanente per vivere una chiave. Il comando "PTTL" consente agli utenti Redis di interrogare questo.
Il comando "PTTL"
Il 'PTTL' restituisce quanto tempo viene lasciato prima che scada una chiave Redis. Se non c'è valore di timeout associato a una chiave, questo comando restituirà -1. Se la chiave Redis non esiste, restituirà -2.
Sintassi
Chiave PTTL
La "chiave" è il nome della chiave Redis.
Se esiste la chiave Redis e la chiave è associata a un tempo di scadenza, il comando "PTTL" restituirà il tempo rimanente per vivere in millisecondi. Questo comando è molto simile a "TTL", in cui l'unica differenza è che "TTL" restituisce il tempo rimanente per vivere in pochi secondi.
Imposta il tempo di scadenza del tasto 'Utente: utente: 02' Time di scadenza del tasto come nell'esempio precedente.
scadenza password -espirationlink: utente: 02 120
Quindi possiamo usare il comando "PTTL" per verificare il tempo restante per vivere per la chiave "Passometro ExpirationLink: Utente: 02".
PTTL PassalspirationLink: utente: 02
Output dopo l'esecuzione del comando sopra più volte:
Abbiamo impostato il tempo di scadenza a 120 secondi, che è di 120000 millisecondi. L'output lo verifica. Il primo comando PTTL restituisce 112030, il che significa che il tasto 'User: utente: 02' scadrà dopo 112030 millisecondi o 112.03 secondi.
Nell'ultima riga, il -2 è stato restituito. Questo dice che il tasto "Passometro ExpirationLink: Utente: 02" è già eliminato o non esiste più. Significa che la chiave ha già incontrato il tempo di scadenza ed è sparita per sempre.
Il comando "PTTL" su una chiave senza tempo di scadenza
Eseguiamo il comando "PTTL" su una chiave che non ha un tempo di scadenza ad esso associato. Innanzitutto, creeremo una nuova chiave 'PassalspirationLink: Utente: 05'.
Imposta password -espirationLink: utente: 05 OldPass: 123456
Successivamente, eseguiremo il comando "PTTL" sulla chiave "Passometro ExpirationLink: Utente: 05".
PTTL PassalspirationLink: utente: 05
Produzione:
Come previsto, ha restituito -1, il che significa che non c'è timeout associato a questa chiave.
Sulla base del valore di ritorno del comando "PTTL", possiamo lasciare che il collegamento di reimpostazione della password scada che abbiamo discusso nell'esempio precedente.
Conclusione
Poiché Redis è un archivio dati basato su valore chiave, le chiavi sono il riferimento diretto per qualsiasi valore di dati. Il comando 'set' Redis viene utilizzato per creare dati di valore chiave nel database. Questo comando ci consente di impostare un timeout durante la creazione della coppia di valore chiave. Un altro modo di impostare i timeout per le chiavi è l'utilizzo del comando "scadenza". In entrambi i modi, è possibile impostare il tempo di scadenza in pochi secondi. Il comando "PTTL" è utile quando dobbiamo interrogare il tempo rimanente per vivere per una chiave Redis. Restituisce il tempo rimanente in millisecondi, che è diverso dal comando "TTL".