Redis pttl

Redis pttl

Redis utilise l'approche de la paire de valeurs clés pour stocker ses données. Par conséquent, toutes les valeurs de données stockées dans une base de données Redis sont référencées par une clé unique.

Ces clés ont tendance à vivre pour toujours jusqu'à ce que vous les supprimez. Habituellement, nous pouvons utiliser la commande 'set' pour créer une nouvelle clé et lui attribuer une valeur. Dans certains scénarios, vous devrez peut-être définir un délai d'expiration pour une clé.

Exemple - Définissez l'expiration du lien de réinitialisation du mot de passe avec la clé redis

Supposons qu'un utilisateur doit réinitialiser le mot de passe du compte Twitter. Le processus habituel est que l'utilisateur clique sur le bouton «Mot de passe oublié» dans la fenêtre de connexion. Cela enverrait un e-mail à l'utilisateur avec un lien de réinitialisation de mot de passe. Ces liens ne vivent que pendant quelques minutes ou jours. Ensuite, le lien expirera. Nous pouvons atteindre ce type de comportement en passant une clé redis dans l'URL. Chaque fois que l'utilisateur clique sur ce lien, il redirigera vers la page de réinitialisation du mot de passe si la clé donnée n'a pas expiré.

Créer une clé dans Redis

La commande redis 'set' peut être utilisée pour créer une nouvelle paire de valeurs clés dans le magasin de données redis, comme indiqué dans les éléments suivants.

Définir PasswordExpirationLink: User: 01 OldPass: 123456

Le 'PasswordExpirationLink: User: 01' est la clé Redis et la valeur est 'OldPass: 123456'.

Définissez un délai d'expiration pour la clé

Depuis que la clé a été créée, nous pouvons définir un délai d'expiration sur cette clé. Il y a deux façons de définir un délai d'expiration.

  1. En utilisant la commande redis 'set'
  2. En utilisant la commande redis 'expire'

1. En utilisant la commande redis 'set'

La commande 'set' a un paramètre appelé 'ex' qui peut être utilisé pour définir le délai d'expiration en secondes. Créons une clé avec une valeur de délai d'expiration.

Définir PasswordExpirationLink: Utilisateur: 02 OldPass: 123456 EX 120

La clé 'MotwordExpirationLink: User: 02' expirera en 120 secondes.

2. En utilisant la commande redis 'expire'

Le «Expire» est la commande la plus populaire pour définir une valeur de délai d'expiration sur une clé.

expirer PasswordExpirationLink: User: 02 120

C'est assez simple par rapport à la commande 'set'. La touche 'PasswordExpirationLink: User: 02' expirera en 120 secondes.

Maintenant, il devrait y avoir un moyen de calculer ou d'interroger le temps restant pour vivre d'une clé. La commande 'PTTL' permet aux utilisateurs de Redis de l'interroger.

La commande 'pttl'

Le «PTTL» renvoie combien de temps reste avant l'expiration d'une clé redis. S'il n'y a pas de valeur de délai d'expiration associée à une clé, alors cette commande retournera -1. Si la clé redis n'existe pas, elle reviendra -2.

Syntaxe

Clé PTTL

La «clé» est le nom de la clé redis.

Si la clé Redis existe et que la clé est associée à un temps d'expiration, alors la commande «PTTL» renverra le temps restant pour vivre en millisecondes. Cette commande est très similaire à «TTL», où la seule différence est que «TTL» renvoie le temps restant pour vivre en quelques secondes.

Définissons le temps d'expiration de «MotwordExpirationLink: User: 02» à 120 secondes comme dans l'exemple précédent.

expirer PasswordExpirationLink: User: 02 120

Ensuite, nous pouvons utiliser la commande 'PTTL' pour vérifier le temps restant pour vivre pour la clé 'PasswordExpirationLink: User: 02' '.

PTTL PasswordExpirationLink: User: 02

Sortie après avoir exécuté la commande ci-dessus plusieurs fois:

Nous avons réglé le temps d'expiration à 120 secondes, soit 120000 millisecondes. La sortie vérifie que. La première commande PTTL renvoie 112030, ce qui signifie que la touche 'MotwordExpirationLink: User: 02' expirera après 112030 millisecondes ou 112.03 secondes.

Dans la dernière ligne, le -2 a été retourné. Cela indique que la touche `` PasswordExpirationLink: User: 02 'est déjà supprimée ou n'existe plus. Cela signifie que la clé a déjà rencontré le temps d'expiration et est parti pour toujours.

La commande 'PTTL' sur une clé sans temps d'expiration

Exécutons la commande 'PTTL' sur une clé qui n'a pas de temps d'expiration associé à lui. Tout d'abord, nous allons créer une nouvelle clé 'MotwordExpirationLink: User: 05'.

Définir PasswordExpirationLink: User: 05 OldPass: 123456

Ensuite, nous exécuterons la commande 'PTTL' sur KEY 'PasswordExpirationLink: User: 05'.

PTTL PasswordExpirationLink: User: 05

Sortir:

Comme prévu, il a retourné -1, ce qui signifie qu'il n'y a pas de délai d'expiration associé à cette clé.

Sur la base de la valeur de retour de la commande 'PTTL', nous pouvons laisser le lien de réinitialisation du mot de passe expirer dont nous avons discuté dans l'exemple précédent.

Conclusion

Étant donné que Redis est un magasin de données basé sur la valeur des clés, les clés sont la référence directe pour toute valeur de données. La commande redis 'set' est utilisée pour créer des données de valeur clé dans la base de données. Cette commande nous permet de définir un délai d'expiration lors de la création de la paire de valeurs clés. Une autre façon de définir des délais d'attente pour les clés est d'utiliser la commande `` expire ''. Dans les deux sens, vous pouvez définir le temps d'expiration en quelques secondes. La commande 'PTTL' est utile lorsque nous devons interroger le temps restant pour vivre pour une clé redis. Il renvoie le temps restant en millisecondes, qui est différent de la commande «TTL».