Redis expiretime

Redis expiretime
Les clés redis sont persistantes jusqu'à ce que vous les supprimez manuellement. Dans certains cas, vous devrez peut-être stocker les paires de valeurs clés temporaires dans le magasin Redis. C'est une bonne pratique de les retirer lorsqu'il n'est pas nécessaire. C'est une tâche fastidieuse et longue de retirer les clés manuellement à chaque fois. Redis a la fonctionnalité pour définir un temps d'expiration sur une clé donnée lorsque vous la créez ou après la création. Nous appelons cela la valeur TTL d'une clé redis.

Définissez la valeur TTL lorsque la touche crée

La syntaxe suivante est utilisée pour définir le temps d'expiration pour une clé Redis donnée au moment de la création:

Set temp_age 24 ex 5

La clé «temp_age» expire après 5 secondes.

Définissez la valeur TTL après la création de la touche

Redis vous permet d'abord de créer la clé, puis de définir un temps d'expiration pour la clé en utilisant la commande Expire comme suit:

Set temp_age 24
Expire temp_age 5

Il est également possible de spécifier une date d'expiration en tant qu'horodatage Unix pour une clé Redis donnée en utilisant la commande Expireat comme suit:

Expiration temp_age 1669929041

L'horodatage UNIX spécifié est associé à la date de lisible humaine suivante:

Jeu, 01 décembre 2022 21:10:41 GMT

La clé «temp_age» expire le 01-12-2022 à 21:10:41.

La commande Expiretime

La commande Expiretime renvoie la date d'expiration comme un horodatage Unix qui est le nombre de secondes calculé à partir de la date de l'époque Unix (1970-01-01T00: 00: 00Z). Cette commande est utile lorsque vous avez plusieurs clés dans la base de données Redis avec des temps d'expiration et que vous devez connaître la date d'expiration exacte d'une clé spécifique. Ce qui suit est la syntaxe de la commande Expiretime:

Expiretime redis_key

La commande Expiretime est très rapide en raison de sa complexité de temps d'exécution O (1). S'il y a un temps d'expiration qui est associé à la clé Redis, la commande Expiretime renvoie le temps d'expiration en quelques secondes en tant qu'Unix Hordestamp. Sinon, la commande renvoie un nombre négatif -1 ou -2:

-1 Réponse - La clé Redis existe mais il n'y a pas de temps d'expiration (TTL) qui y est associé.

-2 Réponse - La clé Redis spécifiée n'existe pas dans la base de données.

Cas d'utilisation:

Supposons que la société ABC doit garder son historique de commande de pièces de rechange à moteur de voiture uniquement pour la dernière semaine. Par conséquent, ils utilisent une base de données Redis pour stocker le nom du client comme le type de clé et de commande comme valeur. En même temps, ils stockent chaque clé avec un temps d'expiration d'une semaine à partir de la date de création.

John achète un moteur de la société ABC le 2022-12-02. La société doit ajouter cet enregistrement à la base de données Redis la suivante:

Définir Customer_John "Engine"

De plus, la clé «Customer_John» devrait expirer après une semaine de 2022-12-02. Ainsi, la date d'expiration est 2022-12-09 à 12h00. Dans ce cas, nous utilisons la commande Exireat pour définir la date d'expiration de cette clé.

La commande Expireat accepte un horodat Unix en quelques secondes. Nous devons fournir la date d'expiration en tant qu'horodatage UNIX comme suit:

L'horodatage Unix associé pour la date d'expiration (2022-12-09 12h00) est 1670524200).

Définissons la date d'expiration comme suit:

Expiration client_john 1670524200

Ici, nous ajoutons un seul enregistrement de commande client à la base de données. Mais ce n'est pas le cas quand il s'agit d'un scénario du monde réel. Il peut y avoir des centaines de commandes de clients qui sont traitées par semaine. Il est difficile de garder une trace des dates d'expiration pour tous les enregistrements de commande client.

La commande Expiretime est utile dans ces types de scénarios. Si vous avez la clé Redis, la commande Expiretime vous aide à récupérer la date d'expiration associée en quelques secondes à partir de la date de l'époque.

Reprenons la date d'expiration de la clé Customer_John comme suit:

Expiretime Customer_John

Comme prévu, l'horodatage Unix est retourné. Si vous convertissez cette valeur d'horodatage en un format lisible par l'homme, il devrait donner la date exacte que nous fixons à l'étape précédente.

La commande Expiretime peut être utilisée lorsque vous avez une grande quantité de données dans votre base de données Redis et que vous devez connaître les dates d'expiration de l'une des clés.

Quand aucun temps d'expiration pour une clé redis

Créons une clé redis sans temps d'expiration (TTL) comme suit:

Définissez NO_TTL_KEY "Non Scénario TTL"

Si nous exécutons la commande Expiretime pour cette clé, elle doit renvoyer le -1. En effet, le «no_ttl_key» n'est pas associé à un TTL.

Expiration NO_TTL_KEY

Quand la clé n'existe pas

Si nous exécutons la commande Expiretime en spécifiant une clé qui n'existe pas dans la base de données Redis actuelle, elle devrait renvoyer la réponse -2 comme suit:

Expiretime ne fait pas_exist_key

Conclusion

Pour conclure, la commande Redis Expiretime est utilisée pour récupérer la date d'expiration ou l'heure d'une clé donnée. Il renvoie un horodat Unix en secondes. S'il n'y a pas de temps d'expiration qui est associé à une clé donnée, la commande d'expiration renvoie négatif 1. La commande renvoie -2 si la clé spécifiée n'existe pas. Plus important encore, cette commande peut être utilisée dans des applications haute performance en raison de son exécution rapide avec une complexité temporelle O (1).