Redis utiliza el enfoque de par de valor clave para almacenar sus datos. Por lo tanto, todos los valores de datos almacenados en una base de datos Redis están referenciados por una clave única.
Estas llaves tienden a vivir para siempre hasta que las elimine. Por lo general, podemos usar el comando 'establecer' para crear una nueva clave y asignarle un valor. En algunos escenarios, es posible que deba establecer un tiempo de espera para una clave.
Ejemplo: establezca la vencimiento del enlace de restablecimiento de contraseña con la tecla Redis
Supongamos que un usuario necesita restablecer su contraseña de cuenta de Twitter. El proceso habitual es que el usuario hace clic en el botón 'Olvidé la contraseña' en la ventana de inicio de sesión. Esto enviaría un correo electrónico al usuario con un enlace de restablecimiento de contraseña. Estos enlaces viven solo por unos minutos o días. Entonces el enlace caducará. Podemos lograr este tipo de comportamiento pasando una llave redis en la URL. Siempre que el usuario haga clic en este enlace, redirigirá a la página de restablecimiento de contraseña si la tecla determinada no ha caducado.
Crear una llave en Redis
El comando 'set' de Redis se puede usar para crear un nuevo par de valores clave en el almacén de datos de Redis, como se muestra en lo siguiente.
Establecer PasswordExpirationLink: Usuario: 01 OldPass: 123456
El 'PasswordExpirationLink: Usuario: 01' es la tecla Redis y el valor es 'OldPass: 123456'.
Establezca un tiempo de espera para la clave
Como se ha creado la clave, podemos establecer un tiempo de espera en esta clave. Hay dos formas de establecer un tiempo de espera.
1. Usando el comando Redis 'set'
El comando 'set' tiene un parámetro llamado 'ex' que se puede usar para establecer el tiempo de espera en segundos. Creemos una clave con un valor de tiempo de espera.
Establecer PasswordExpirationLink: Usuario: 02 OldPass: 123456 EX 120
La clave 'PasswordExpirationLink: Usuario: 02' caducará en 120 segundos.
2. Usando el comando Redis 'expirar'
El 'expirar' es el comando más popular para establecer un valor de tiempo de espera en una clave.
expirar PasswordExpirationLink: Usuario: 02 120
Esto es bastante sencillo en comparación con el comando 'establecer'. La tecla 'PasswordExpirationLink: User: 02' expirará en 120 segundos.
Ahora, debería haber una manera de calcular o consultar el tiempo restante para vivir de una llave. El comando 'PTTL' permite a los usuarios de Redis consultar esto.
El comando 'pttl'
El 'pttl' devuelve cuánto tiempo queda antes de que expire una llave redis. Si no hay un valor de tiempo de espera asociado con una clave, este comando devolverá -1. Si la tecla Redis no existe, volverá -2.
Sintaxis
Clave PTTL
La 'clave' es el nombre de la tecla Redis.
Si la clave Redis existe y la clave se asocia con un tiempo de vencimiento, entonces el comando 'PTTL' devolverá el tiempo restante para vivir en milisegundos. Este comando es muy similar a 'TTL', donde la única diferencia es que 'TTL' devuelve el tiempo restante para vivir en segundos.
Establezcamos el tiempo de vencimiento de la tecla 'PasswordExpiration: User: 02' a 120 segundos como en el ejemplo anterior.
expirar PasswordExpirationLink: Usuario: 02 120
Luego podemos usar el comando 'PTTL' para verificar el tiempo restante para vivir para la clave 'PasswordExpirationLink: Usuario: 02'.
PTTL PasswordExpirationLink: Usuario: 02
Salida después de ejecutar el comando anterior varias veces:
Hemos establecido el tiempo de vencimiento en 120 segundos, que es de 120000 milisegundos. La salida verifica que. El primer comando PTTL devuelve 112030, lo que significa que la tecla 'PasswordExpirationLink: User: 02' caducará después de 112030 milisegundos o 112.03 segundos.
En la última línea, el -2 ha sido devuelto. Eso dice que la tecla 'PasswordExpirationLink: User: 02' ya está eliminada o ya no existe. Significa que la clave ya ha cumplido el tiempo de vencimiento y se ha ido para siempre.
El comando 'pttl' en una clave sin tiempo de vencimiento
Ejecutemos el comando 'PTTL' en una clave que no tiene un tiempo de vencimiento asociado con él. Primero, vamos a crear una nueva clave 'PasswordExpirationLink: Usuario: 05'.
Establezca contraseña EXPRIMACIÓN: Usuario: 05 OldPass: 123456
A continuación, ejecutaremos el comando 'PTTL' en la clave 'Key' PasswordExpirationLink: Usuario: 05 '.
PTTL PasswordExpirationLink: Usuario: 05
Producción:
Como se esperaba, regresó -1, lo que significa que no hay tiempo de espera asociado con esta clave.
Basado en el valor de retorno del comando 'PTTL', podemos dejar que el enlace de restablecimiento de contraseña caduque que discutimos en el ejemplo anterior.
Conclusión
Dado que Redis es un almacén de datos basado en el valor clave, las claves son la referencia directa para cualquier valor de datos. El comando Redis 'set' se utiliza para crear datos de valor clave en la base de datos. Este comando nos permite establecer un tiempo de espera al crear el par de valores clave. Otra forma de establecer tiempos de espera para las teclas es usar el comando 'expirar'. En ambos sentidos, puede establecer el tiempo de vencimiento en segundos. El comando 'pttl' es útil cuando necesitamos consultar el tiempo restante para vivir para una llave redis. Devuelve el tiempo restante en milisegundos, que es diferente del comando 'ttl'.