En esta guía, vamos a explorar cómo expirar las llaves en Redis. Como sugiere el título, nos centraremos en el vencimiento de la clave hash, pero el concepto general también se aplica a otras claves."
Requisitos previos
Para realizar los pasos demostrados en esta guía, necesitará los siguientes componentes listos para funcionar:
Redis Keys
Las claves redis son persistentes por defecto, lo que significa que cualquier entrada permanecerá intacta a menos que se elimine manualmente. Si bien esta configuración es buena en general, hay situaciones en las que puede que desee que las claves caducen después de una cierta cantidad de tiempo. En otras palabras, querrías volátil llaves.
Ahora, Redis admite múltiples tipos de claves, categorizadas por el tipo de datos. Estos son algunos de los tipos de datos más comunes que encontrará:
Consulte la documentación oficial de Redis sobre los tipos de datos para obtener información más profunda. Para el propósito de esta guía, nos centraremos en las teclas hash.
Llaves de hash
En Redis, los hashes son mapas entre los campos (cadena) y los valores (cadena). Debido a esta estructura, es el tipo de datos perfecto para representar objetos. Expliquemos con un ejemplo. Eche un vistazo a la siguiente estructura:
Aquí, podemos considerar user_database como una clave hash. Dentro de este hash, tenemos múltiples pares de valor de campo, que representan el nombre de usuario y la contraseña. Implementamos en Redis:
$ Hmset user_database user_1 "David" pass_1 "contraseña_1"
$ Hmset user_database user_2 "Alex" pass_2 "contraseña_2"
$ Hmset user_database user_3 "mason" pass_3 "contraseña_3"
Como se demostró, Redis usa el comando hmset para registrar las teclas hash. Para recuperar los datos almacenados en la clave, necesitamos usar el comando HGGE:
$ Hget user_database user_1
$ Hget user_database pass_3
Para obtener la información de todos los campos a la vez, use el comando hgetall en su lugar:
$ Hgetall user_database
En Redis, una clave hash puede tener hasta 2^32 - 1 (más de 4 mil millones) pares de valor de campo. La mayoría de las veces, los hash se usan para representar objetos. Sin embargo, debido a su naturaleza, los hashes pueden ser útiles en numerosas situaciones.
Redis Key expirar
Todos los objetos Redis tienen un tiempo de vencimiento. Por defecto, el valor se establece en nunca. Sin embargo, al cambiar este valor, podemos establecer las teclas Redis que caducarán automáticamente después de una cantidad fija de tiempo. Una vez que se pasa el tiempo de vencimiento, la clave se elimina de la base de datos.
Si bien es una explicación generalizada, el mecanismo real de expiración clave es algo complicado. Consulte la documentación oficial de Redis para obtener una explicación en profundidad del mecanismo de vencimiento clave.
Para establecer un tiempo de vencimiento, utilizaremos el comando expirar. El siguiente ejemplo demuestra su uso:
$ Set hola "The Quick Brown Fox"
$ Expire hola 999
Aquí, la clave Hello expirará en 999 segundos. Para verificar el tiempo que queda para una llave para expirar, use el comando TTL:
$ Ttl hola
La salida devolverá el tiempo que queda antes de que expire la clave. Sin embargo, en el caso de un error, TTL puede devolver diferentes valores:
Expirando la llave hash
Ahora que entendemos las claves hash y cómo funciona el vencimiento clave, es hora de ponerlas en acción.
Continuando con el ejemplo de la clave hash, pongamos un tiempo de vencimiento a user_database:
$ Expire user_database 999
Para verificar esta acción, verifique el valor TTL de user_database:
$ Ttl user_database
Opciones de vencimiento
El comando expirar viene con algunas opciones adicionales que implementan algunas condiciones adicionales al establecer el tiempo de vencimiento. Esos son los siguientes:
Al implementar las opciones, el comando se vería algo así:
$ Expirar
Continuando con el ejemplo anterior, actualicemos el tiempo de vencimiento de user_database:
$ Expire user_database 9999 gt
Verifique si se actualizó el tiempo de vencimiento:
$ Ttl user_database
Pensamientos finales
En esta guía, exploramos expirar una llave hash en Redis. Redis viene con un comando dedicado para expirar para establecer un tiempo de vencimiento para las claves. Demostramos cómo usar este comando para expirar una clave de demostración. También exploramos varias opciones que admite el comando expirar.
Interesado en aprender más sobre Redis? La subcategoría de Redis está llena de guías en profundidad. Obtenga más información sobre los comandos comunes de Redis, el comando bitcount, tuberías, etc.
Computación feliz!