Gestion basique des données dans Redis

RedisBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous explorerez les techniques de base de gestion des données dans Redis. Vous commencerez par apprendre à incrémenter et décrémenter des valeurs numériques à l'aide des commandes atomiques INCR et DECR, adaptées aux compteurs et aux limiteurs de débit (rate limiters). Vous vous connecterez au serveur Redis à l'aide de redis-cli, définirez des valeurs initiales, puis les incrémenterez et les décrémenterez, en vérifiant les résultats avec la commande GET.

De plus, vous apprendrez à récupérer toutes les clés stockées dans Redis à l'aide de la commande KEYS.

Incrémenter et décrémenter des valeurs avec INCR/DECR

Dans cette étape, vous apprendrez à incrémenter et à décrémenter des valeurs numériques stockées dans Redis à l'aide des commandes INCR et DECR. Ces commandes sont atomiques, ce qui signifie qu'elles sont garanties de s'exécuter sans interférence d'autres clients, ce qui les rend adaptées à des tâches telles que les compteurs et les limiteurs de débit (rate limiters).

Tout d'abord, connectons-nous au serveur Redis à l'aide de la commande redis-cli dans le terminal :

redis-cli

Maintenant, définissons une clé nommée mycounter avec une valeur initiale de 10. Cela crée une paire clé-valeur dans la base de données Redis. La clé est mycounter et la valeur est 10.

SET mycounter 10

Vous devriez voir la sortie suivante, confirmant que la clé a été définie avec succès :

OK

La commande INCR incrémente la valeur d'une clé de 1. Incrémentons mycounter :

INCR mycounter

La sortie sera la valeur incrémentée :

(integer) 11

Pour vérifier la valeur, vous pouvez utiliser la commande GET :

GET mycounter

La sortie devrait être :

"11"

La commande DECR décrémente la valeur d'une clé de 1. Décrémentons mycounter :

DECR mycounter

La sortie sera la valeur décrémentée :

(integer) 10

Encore une fois, vérifiez la valeur avec GET :

GET mycounter

La sortie devrait être :

"10"

Si une clé n'existe pas, INCR et DECR la traitent comme si elle contenait la valeur 0. Essayons d'incrémenter une clé inexistante appelée newcounter :

INCR newcounter

La sortie sera :

(integer) 1

Maintenant, vérifiez la valeur de newcounter :

GET newcounter

La sortie devrait être :

"1"

De même, la décrémentation d'une clé inexistante la traitera comme 0 et la décrémentera à -1.

DECR anothercounter

La sortie sera :

(integer) -1
GET anothercounter

La sortie devrait être :

"-1"

Enfin, quittez redis-cli :

exit

Il est important de quitter redis-cli après avoir terminé les commandes afin que l'historique des commandes soit correctement enregistré.

Récupérer toutes les clés avec KEYS

Dans cette étape, vous apprendrez à récupérer toutes les clés stockées dans Redis à l'aide de la commande KEYS. Bien que KEYS soit utile pour le développement et le débogage, il n'est généralement pas recommandé pour les environnements de production avec de grands ensembles de données, car il peut bloquer le serveur pendant qu'il itère sur toutes les clés.

Tout d'abord, connectez-vous au serveur Redis à l'aide de redis-cli :

redis-cli

Dans l'étape précédente, vous avez créé plusieurs clés : mycounter, newcounter et anothercounter. Ajoutons quelques clés supplémentaires pour rendre l'exemple plus intéressant.

SET user:1000:name "John"
SET user:1000:age 30
SET user:1001:name "Jane"

Maintenant, utilisez la commande KEYS avec le modèle * pour récupérer toutes les clés de la base de données :

KEYS *

La sortie sera une liste de toutes les clés :

1) "anothercounter"
2) "user:1000:age"
3) "user:1001:name"
4) "mycounter"
5) "newcounter"
6) "user:1000:name"

L'ordre des clés peut varier.

Vous pouvez également utiliser des modèles pour récupérer les clés qui correspondent à un modèle spécifique. Par exemple, pour récupérer toutes les clés qui commencent par user:, utilisez la commande suivante :

KEYS user:*

La sortie sera :

1) "user:1000:age"
2) "user:1001:name"
3) "user:1000:name"

Autre exemple, pour récupérer toutes les clés qui contiennent counter, utilisez la commande suivante :

KEYS *counter*

La sortie sera :

1) "anothercounter"
2) "mycounter"
3) "newcounter"

N'oubliez pas que l'utilisation de KEYS * sur une grande base de données peut avoir un impact sur les performances. Pour les environnements de production, envisagez d'utiliser SCAN à la place, qui itère dans l'espace de clés (keyspace) de manière non bloquante.

Enfin, quittez redis-cli :

exit

Vérifier le type de données avec TYPE

Dans cette étape, vous apprendrez à vérifier le type de données d'une clé stockée dans Redis à l'aide de la commande TYPE. Redis prend en charge différents types de données, notamment les chaînes de caractères (strings), les listes (lists), les ensembles (sets), les ensembles triés (sorted sets) et les tables de hachage (hashes). Comprendre le type de données d'une clé est essentiel pour effectuer les opérations appropriées dessus.

Tout d'abord, connectez-vous au serveur Redis à l'aide de redis-cli :

redis-cli

Dans les étapes précédentes, vous avez créé plusieurs clés avec différentes valeurs. Vérifions leurs types de données.

Tout d'abord, vérifions le type de données de la clé mycounter :

TYPE mycounter

La sortie sera :

string

Cela indique que mycounter est stockée sous forme de chaîne de caractères, même si elle contient une valeur numérique. Redis convertit automatiquement les valeurs numériques en chaînes de caractères lors de l'utilisation de SET.

Ensuite, vérifions le type de données de la clé user:1000:name :

TYPE user:1000:name

La sortie sera :

string

Cela indique également que user:1000:name est stockée sous forme de chaîne de caractères.

Maintenant, vérifions le type de données d'une clé qui n'existe pas, telle que nonexistentkey :

TYPE nonexistentkey

La sortie sera :

none

Cela indique que la clé n'existe pas dans la base de données.

Pour illustrer davantage les types de données, créons une liste :

LPUSH mylist "item1"
LPUSH mylist "item2"

Maintenant, vérifiez le type de données de mylist :

TYPE mylist

La sortie sera :

list

Cela confirme que mylist est stockée sous forme de liste.

De même, vous pouvez créer d'autres types de données comme les ensembles (sets), les ensembles triés (sorted sets) et les tables de hachage (hashes) et utiliser la commande TYPE pour vérifier leurs types. Par exemple :

SADD myset "member1"
SADD myset "member2"
TYPE myset

La sortie sera :

set
ZADD mysortedset 1 "element1"
ZADD mysortedset 2 "element2"
TYPE mysortedset

La sortie sera :

zset
HSET myhash field1 "value1"
HSET myhash field2 "value2"
TYPE myhash

La sortie sera :

hash

Enfin, quittez redis-cli :

exit

Effacer les données avec FLUSHDB

Dans cette étape, vous apprendrez à effacer toutes les données de la base de données Redis actuellement sélectionnée à l'aide de la commande FLUSHDB. Cette commande est utile pour réinitialiser la base de données pendant le développement ou les tests. Utilisez cette commande avec prudence dans les environnements de production, car elle supprimera définitivement toutes les données de la base de données.

Tout d'abord, connectez-vous au serveur Redis à l'aide de redis-cli :

redis-cli

Avant de vider la base de données, vérifions qu'il y a des clés présentes. Utilisez la commande KEYS * :

KEYS *

Vous devriez voir une liste de clés que vous avez créées dans les étapes précédentes, telles que mycounter, newcounter, user:1000:name et mylist.

Maintenant, exécutez la commande FLUSHDB :

FLUSHDB

La sortie sera :

OK

Cela indique que la base de données a été vidée avec succès.

Pour vérifier que la base de données est maintenant vide, utilisez à nouveau la commande KEYS * :

KEYS *

La sortie sera une liste vide :

(empty array)

Cela confirme que toutes les clés ont été supprimées de la base de données.

Il est important de comprendre que FLUSHDB efface uniquement la base de données actuellement sélectionnée. Redis prend en charge plusieurs bases de données (numérotées de 0 à 15 par défaut). Si vous souhaitez effacer toutes les bases de données, vous pouvez utiliser la commande FLUSHALL. Cependant, nous n'utiliserons pas FLUSHALL dans ce labo pour éviter toute perte de données involontaire.

Enfin, quittez redis-cli :

exit

Résumé

Dans ce labo, vous avez appris les techniques fondamentales de gestion des données dans Redis. Plus précisément, vous avez pratiqué l'incrémentation et la décrémentation de valeurs numériques à l'aide des commandes atomiques INCR et DECR, qui sont utiles pour implémenter des compteurs et des limiteurs de débit (rate limiters). Vous avez également appris que si une clé n'existe pas, ces commandes la traitent comme si elle contenait la valeur 0.

De plus, vous avez été initié à la commande KEYS pour récupérer toutes les clés stockées dans Redis. Bien qu'utile pour le développement et le débogage, elle n'est généralement pas recommandée pour les environnements de production avec de grands ensembles de données (datasets). Enfin, vous avez appris à vérifier les types de données et à effacer la base de données.