Utilisation des commandes de balayage dans Redis sous Linux
Redis, un magasin de structures de données en mémoire open-source, est connu pour sa rapidité et sa polyvalence en tant que base de données clé-valeur. L’une de ses puissantes fonctionnalités est la possibilité d’itérer de manière incrémentale dans les ensembles de données à l’aide de commandes de balayage. Cette fonction est particulièrement utile lorsqu’il s’agit de grands ensembles de données, car elle permet d’extraire efficacement les données sans surcharger le serveur. Pour les utilisateurs d’un serveur Linux dédié, l’utilisation de commandes de balayage dans Redis peut améliorer les performances de traitement des données en permettant un traitement précis et optimisé des ensembles de données. Dans cet article, nous allons voir comment utiliser efficacement les commandes de balayage dans Redis au sein d’un environnement Linux, en proposant des exemples détaillés et les meilleures pratiques pour gérer et récupérer des données à grande échelle
Que sont les commandes de balayage ?
Les commandes de balayage de Redis permettent d’itérer sur des clés, des ensembles, des hachages et des ensembles triés de manière non bloquante. Contrairement à la commande KEYS, qui peut être dangereuse pour les grands ensembles de données car elle renvoie toutes les clés correspondantes en même temps, les commandes de balayage renvoient un petit nombre d’éléments à la fois. Cela minimise l’impact sur les performances et permet une itération incrémentale
Commandes de balayage des clés
- SCAN: parcourt les clés de l’espace-clé.
- SSCAN: parcourt les éléments d’un ensemble.
- HSCAN: parcourt les champs et les valeurs d’un hachage.
- ZSCAN: parcourt les membres et les notes d’un ensemble trié.
Syntaxe de base des commandes d’analyse
Chaque commande d’analyse a une syntaxe similaire
- curseur: Un nombre entier qui représente la position à partir de laquelle le balayage doit commencer. Pour commencer un nouveau balayage, utilisez 0.
- MATCH pattern: (optionnel) Un motif pour filtrer les clés renvoyées. Prend en charge les motifs de type “glob”.
- COUNT count: (facultatif) Indication à Redis du nombre d’éléments à renvoyer à chaque itération.
Installation de Redis sous Linux
Pour CentOS/RHEL, utilisez
Une fois installé, démarrez le serveur Redis
Connexion à Redis
Ouvrez votre terminal et connectez-vous à votre instance Redis en utilisant le CLI Redis
Vous pouvez maintenant exécuter des commandes Redis dans le CLI
Utilisation de la commande SCAN
Exemple 1 : SCAN de base
Pour récupérer toutes les clés de la base de données Redis, vous pouvez utiliser
Cette commande renvoie un curseur et une liste de clés
Exemple 2 : Utilisation de MATCH pour filtrer les clés
Si vous souhaitez trouver les clés qui correspondent à un modèle spécifique, par exemple les clés qui commencent par “user :”, vous pouvez utiliser la commande MATCH
Cette commande ne renvoie que les clés qui commencent par “user :”
Exemple 3 : Spécifier COUNT
Pour indiquer le nombre de clés que Redis doit renvoyer à chaque itération, vous pouvez spécifier un compte
Cette méthode tentera de renvoyer environ 10 clés. Notez que le nombre réel de clés retournées peut être inférieur à ce chiffre
Exemple 4 : Itération sur toutes les clés
Pour parcourir toutes les clés en plusieurs itérations, vous devez garder une trace du curseur renvoyé. Voici un exemple simple de script shell :
cursor=0
while true; do
result=$(redis-cli SSCAN myset $cursor MATCH apple:*)
echo "$result" # Process the result as needed
cursor=$(echo "$result" | awk 'NR==1{print $1}') # Update the cursor
if [[ "$cursor" == "0" ]]; then
break # Stop when the cursor is back to 0
fi
done
Utilisation de la commande SSCAN
La commande SSCAN est utilisée pour parcourir les éléments d’un ensemble. Sa syntaxe est similaire à celle de SCAN
Exemple de SSCAN
Étape 1 : Créer un ensemble et ajouter des éléments
Créons un ensemble appelé myset et ajoutons-y des éléments