Redis expira la llave hash

Redis expira la llave hash
"Redis es un almacén de estructura de datos de código abierto que se utiliza como una base de datos de valor clave distribuida en memoria. Debido a su naturaleza, Redis es un almacenamiento de datos de alto rendimiento, adecuado para la implementación en diferentes situaciones, por ejemplo, caché, corredor de mensajes, etc.

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:

  • Un sistema de Linux concurrido correctamente. Obtenga más información sobre cómo instalar Ubuntu.
  • Servidor redis instalado y configurado. Obtenga más información sobre cómo instalar Redis en Ubuntu.

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á:

  • Instrumentos de cuerda
  • Liza
  • Sets
  • Hash

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:

  • user_database
  • David: Password_1
  • Alex: Password_2
  • Mason: Password_3

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:

  • -2 Si la clave no existe.
  • -1 Si la clave no tiene vencimiento asociado.

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:

  • Nx: el tiempo de vencimiento se establece solo si la clave no tiene cadena.
  • Xx: el tiempo de vencimiento se establece solo si la clave tiene un vencimiento existente.
  • GT: El nuevo tiempo de vencimiento se establece si el nuevo vencimiento es mayor que el actual.
  • LT: El nuevo tiempo de vencimiento se establece si el nuevo vencimiento es menor que el actual.

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!