Blog Navicat

Les Expiration de Clés dans Redis 6 octobre 2023 par Robert Gravelle

Redis est reconnu pour ses hautes performances, pour sa rapidité et sa polyvalence en termes de stockage de données. L'une de ses fonctionnalités les plus utiles est la possibilité de définir des délais d'expiration pour les Clés. L'expiration des Clés dans Redis est cruciale pour gérer les données et garantir que les données obsolètes ou temporaires soient automatiquement supprimées de la base de données. Dans cet article, nous explorerons comment faire expirer les clés dans Redis à l'aide de redis-cli et Navicat for Redis. Nous verrons ainsi comment cette fonctionnalité peut être appliquée dans divers scénarios.

SDéfinir l’Expiration d’une Clé

Pour définir un délai d'expiration d’une clé dans Redis, vous pouvez utiliser la commande EXPIRE ou SETEX. La commande EXPIRE vous permet de définir un délai d'expiration en secondes, tandis que SETEX définit à la fois la valeur de la clé et son délai d'expiration en une seule commande. Voici comment utiliser les deux commandes :

Utilisation de la commande EXPIRE:

127.0.0.1:6379> SET mykey "Hello, Redis"
OK
127.0.0.1:6379> EXPIRE mykey 60
(integer) 1

Dans cet exemple, nous définissons d'abord la valeur de mykey tsur "Hello, Redis" à l'aide de la commande SET. Ensuite, nous utilisons EXPIRE pour définir un délai d'expiration de 60 secondes pour mykey. Après 60 secondes, la clé sera automatiquement supprimée de la base de données.

Utilisation de la commande SETEX:

127.0.0.1:6379> SETEX mykey 60 "Hello, Redis"
OK

Avec SETEX, on obtient le même résultat en une seule commande en spécifiant la clé, le délai d'expiration (60 secondes dans ce cas) et la valeur.

Connaitre le reste-à-vivre de la Clé Time-to-Live (TTL)

Pour vérifier le temps restant jusqu'à l'expiration d'une clé, vous pouvez utiliser la commande TTL. Cette commande renvoie le temps restant en secondes, ou -2 si la clé n'existe pas, ou -1 si la clé existe mais n'a pas de délai d'expiration associé (elle n'expirera jamais). Voici comment l'utiliser :

127.0.0.1:6379> TTL mykey
(integer) 30

Dans cet exemple, nous vérifions le temps restant pour mykey, qui devait expirer après 60 secondes. La commande renvoie 30, indiquant qu'il reste 30 secondes avant l'expiration de la clé.

Suppressions des Clés expirées

Redis supprime automatiquement les clés lorsque leur délai d'expiration est atteint. Cependant, vous pouvez également supprimer manuellement des clés à l'aide de la commande DEL. Cela peut être utile si vous souhaitez supprimer une clé avant son expiration. Voici comment l’utiliser:

127.0.0.1:6379> DEL mykey
(integer) 1

Dans cet exemple, nous utilisons la commande DEL pour supprimer mykey manuellement. Après avoir exécuté cette commande, la clé n'existera plus dans la base de données.

Définier l’expiration d’une Clé avec Navicat

Dans Navicat, l'éditeur de données comprend une liste déroulante TTL pour définir l'expiration d'une clé :

TTL_dropdown (74K)

Les choix possible sont "Pas de TTL (durée de vie)", "Expire en (secondes)" et "Expire à (Heure locale)". Voici comment faire expirer une clé en 60 secondes :

expire_in_60_seconds (21K)

Les informations d'expiration de la clé seront définies lorsque vous cliquerez sur le bouton Appliquer (Apply).

Cas d’usage pour les Clés expirées

Les clés d'expiration dans Redis peuvent être utilisées dans divers scénarios pour gérer efficacement les données :

1. Mise en cache

Redis est souvent utilisé comme couche de mise en cache. En définissant des délais d'expiration courts pour les clés de cache, vous pouvez garantir que le cache reste à jour et pertinent, empêchant ainsi le stockage de données obsolètes.

2. Gestion des sessions

La gestion des sessions utilisateur dans une application Web devient plus facilement gérable avec Redis. Configurer les données de session pour qu'elles expirent après une certaine période d'inactivité peut aider à libérer des ressources et à améliorer la sécurité.

3. Limitation du debit (Rate limiting)

La rate limiting est un cas d’utilisation courant pour la sécurisation des API. Redis peut être utilisé pour compter et limiter le nombre de requêtes d'un client dans un laps de temps spécifique, en expirant les clés de limite de débit après un temps prédéfini.

4. Stockage de données temporaire

Redis peut servir de magasin de données temporaire pour les tâches en arrière-plan ou le traitement de données temporaires. Les clés expirées nettoient automatiquement les données qui ne sont plus nécessaires, réduisant ainsi les interventions manuelles.

Conclusion

Dans cet article, nous avons appris comment faire expirer les clés dans Redis à l'aide de redis-cli et Navicat for Redis. Nous avons aussi vu comment cette fonctionnalité peut être appliquée dans divers scénarios. L'expiration des clés dans Redis est une fonctionnalité puissante qui permet de gérer efficacement les données, en garantissant que les données obsolètes ou temporaires soient automatiquement supprimées de la base de données. Que vous utilisiez Redis pour la mise en cache, la gestion de sessions, la limitation de débit ou le stockage temporaire de données, la possibilité de définir des délais d'expiration pour les clés peut améliorer considérablement les performances et la fiabilité de vos applications.

Partager
Archives du blog