Dans ce guide, nous allons explorer comment expirer les clés dans Redis. Comme le titre l'indique, nous nous concentrerons sur l'expiration des clés de hachage, mais le concept général s'applique également aux autres clés."
Conditions préalables
Pour effectuer les étapes démontrées dans ce guide, vous aurez besoin des composants suivants prêts à l'emploi:
Redis Keys
Les clés redis sont persistantes par défaut, ce qui signifie que toute entrée restera intacte à moins que la suppression manuelle. Bien que cette configuration soit bonne en général, il y a des situations où vous pouvez vouloir que les clés expirent après un certain temps. En d'autres termes, vous voudriez volatil clés.
Maintenant, Redis prend en charge plusieurs types de clés, catégorisés par le type de données. Voici quelques-uns des types de données les plus courants que vous rencontrerez:
Consultez la documentation officielle Redis sur les types de données pour plus d'informations approfondies. Aux fins de ce guide, nous nous concentrerons sur les clés de hachage.
Clés de hachage
Dans Redis, les hachages sont des cartes entre les champs (chaîne) et les valeurs (chaîne). En raison de cette structure, c'est le type de données parfait pour représenter des objets. Expliquons avec un exemple. Jetez un œil à la structure suivante:
Ici, nous pouvons considérer user_database comme une clé de hachage. À l'intérieur de ce hachage, nous avons plusieurs paires de valeurs de champ, représentant le nom d'utilisateur et le mot de passe. Implémentons-le dans Redis:
$ Hmset user_database user_1 "david" pass_1 "mot de passe_1"
$ Hmset user_database user_2 "Alex" pass_2 "mot de passe_2"
$ Hmset user_database user_3 "Mason" pass_3 "mot de passe_3"
Comme démontré, Redis utilise la commande hmset pour enregistrer les clés de hachage. Pour récupérer les données stockées dans la clé, nous devons utiliser la commande HGET:
$ Hget user_database user_1
$ Hget user_database pass_3
Pour obtenir les informations de tous les champs à la fois, utilisez plutôt la commande HGGETALL:
$ Hgetall user_database
Dans Redis, une clé de hachage peut avoir jusqu'à 2 ^ 32 - 1 (plus de 4 milliards) paires de valeurs de champ. La plupart du temps, les hachages sont utilisés pour représenter les objets. Cependant, en raison de sa nature, les hachages peuvent être utiles dans de nombreuses situations.
Redis Key Expire
Tous les objets redis ont un temps d'expiration. Par défaut, la valeur est définie sur. Cependant, en modifiant cette valeur, nous pouvons définir des clés Redis qui expireront automatiquement après une durée fixe. Une fois le temps d'expiration passé, la clé est supprimée de la base de données.
Bien qu'il s'agisse d'une explication généralisée, le mécanisme réel de l'expiration clé est quelque peu compliqué. Consultez la documentation officielle Redis pour une explication approfondie du mécanisme d'expiration clé.
Pour définir un temps d'expiration, nous utiliserons la commande Expire. L'exemple suivant démontre son utilisation:
$ Set Bonjour "The Quick Brown Fox"
$ Expire bonjour 999
Ici, la clé Hello expirera en 999 secondes. Pour vérifier l'heure restante pour une clé pour expirer, utilisez la commande TTL:
$ Ttl bonjour
La sortie renvoie le temps restant avant l'expiration de la clé. Cependant, en cas d'erreur, TTL peut renvoyer différentes valeurs:
Clé de hachage expiré
Maintenant que nous comprenons les clés de hachage et le fonctionnement de l'expiration clé, il est temps de les mettre en action.
Poursuivant à partir de l'exemple de clé de hachage, mettons un temps d'expiration à user_database:
$ Expire user_database 999
Pour vérifier cette action, vérifiez la valeur TTL de user_database:
$ Ttl user_database
Expirer les options
La commande Expire est livrée avec des options supplémentaires qui implémentent certaines conditions supplémentaires lors de la définition du temps d'expiration. Ce sont les suivants:
Lors de la mise en œuvre des options, la commande ressemblerait à ceci:
$ Expire
Poursuivant à partir de l'exemple précédent, mettons à jour le temps d'expiration de user_database:
$ Expire user_database 9999 gt
Vérifiez si le temps d'expiration a été mis à jour:
$ Ttl user_database
Dernières pensées
Dans ce guide, nous avons exploré l'expiration d'une clé de hachage dans Redis. Redis est livré avec une commande dédiée expire pour définir un temps d'expiration pour les clés. Nous avons démontré comment utiliser cette commande pour expirer une clé de démonstration. Nous avons également exploré diverses options que les prises en charge de la commande Expire.
Intéressé à en savoir plus sur Redis? La sous-catégorie Redis est pleine de guides approfondis. En savoir plus sur les commandes Redis communes, la commande bitcoute, le pipeline, etc.
Happy Computing!