Introduction
Redis est un système de stockage de données open source de type clé-valeur en mémoire. Il est livré avec plusieurs commandes qui peuvent aider à résoudre les problèmes et à effectuer le débogage. En raison de la nature de Redis en tant que système de stockage clé-valeur en mémoire, bon nombre de ces commandes se concentrent sur la gestion de la mémoire, mais d’autres sont précieuses pour fournir une vue d’ensemble de l’état de votre serveur Redis. Ce tutoriel fournira des détails sur l’utilisation de certaines de ces commandes pour aider à diagnostiquer et résoudre les problèmes auxquels vous pourriez être confronté lors de l’utilisation de Redis.
Comment utiliser ce guide
Ce guide est rédigé sous forme de mémo avec des exemples autonomes. Nous vous encourageons à accéder directement à toute section pertinente pour la tâche que vous essayez d’accomplir.
Les commandes présentées dans ce guide ont été testées sur un serveur Ubuntu 22.04 exécutant la version 6.0.16 de Redis. Pour configurer un environnement similaire, vous pouvez suivre l’étape 1 de notre guide sur Comment installer et sécuriser Redis sur Ubuntu 22.04. Nous illustrerons le comportement de ces commandes en les exécutant avec redis-cli
, l’interface de ligne de commande Redis. Si vous utilisez une interface Redis différente, comme Redli, par exemple, la sortie exacte de certaines commandes peut différer.
Alternativement, vous pouvez provisionner une instance de base de données Redis gérée pour tester ces commandes, mais en fonction du niveau de contrôle autorisé par votre fournisseur de base de données, certaines commandes de ce guide peuvent ne pas fonctionner comme décrit. Pour provisionner une base de données gérée DigitalOcean, suivez notre documentation sur le produit Managed Databases. Ensuite, vous devez soit installer Redli soit configurer un tunnel TLS afin de vous connecter à la base de données gérée via TLS.
Résolution des problèmes liés à la mémoire
memory usage
vous indique combien de mémoire est actuellement utilisée par une clé unique. Il prend le nom d’une clé comme argument et affiche le nombre d’octets qu’elle utilise. Tout d’abord, définissez une variable d’exemple :
- set key_meaningOfLife "Food"
Ensuite, vérifiez la mémoire avec memory usage
:
- memory usage key_meaningOfLife
Output(integer) 88
Pour une compréhension plus générale de la façon dont votre serveur Redis utilise la mémoire, vous pouvez exécuter la commande memory stats
:
- memory stats
Cette commande affiche un tableau de métriques liées à la mémoire et leurs valeurs. Les métriques suivantes sont rapportées par memory stats
:
peak.allocated
: Le nombre maximum d’octets consommés par Redistotal.allocated
: Le nombre total d’octets alloués par Redisstartup.allocated
: Le nombre initial d’octets consommés par Redis au démarragereplication.backlog
: La taille du journal de réplication, en octetsclients.slaves
: La taille totale de tous les surcoûts des répliques, c’est-à-dire les tampons de sortie et de requête et les contextes de connexionclients.normal
: La taille totale de tous les surcoûts clientaof.buffer
: La taille totale des tampons actuels et de réécriture du fichier journal en mode ajout seulementdb.0
: Les surcoûts des dictionnaires principal et d’expiration pour chaque base de données utilisée sur le serveur, rapportés en octetsoverhead.total
: La somme de tous les surcoûts utilisés pour gérer l’espace clé de Rediskeys.count
: Le nombre total de clés stockées dans toutes les bases de données du serveurkeys.bytes-per-key
: Le ratio de l’utilisation nette de la mémoire du serveur et dekeys.count
dataset.bytes
: La taille de l’ensemble de données, en octetsdataset.percentage
: Le pourcentage de l’utilisation nette de la mémoire de Redis pris pardataset.bytes
peak.percentage
: Le pourcentage depeak.allocated
extrait detotal.allocated
fragmentation
: Le ratio de la quantité de mémoire actuellement utilisée divisée par la mémoire physique que Redis utilise réellement.
memory malloc-stats
fournit un rapport statistique interne de jemalloc, l’allocateur de mémoire utilisé par Redis sur les systèmes Linux :
- memory malloc-stats
S’il semble que vous rencontrez des problèmes liés à la mémoire, mais que l’analyse de la sortie des commandes précédentes s’avère peu utile, vous pouvez essayer d’exécuter memory doctor
:
- memory doctor
Cette fonctionnalité affichera tous les problèmes de consommation de mémoire qu’elle peut trouver et suggérera des solutions potentielles.
Obtention d’informations générales sur votre instance Redis
A debugging command that isn’t directly related to memory management is monitor
. This command allows you to review a constant stream of every command processed by the Redis server:
- monitor
OutputOK
1566157213.896437 [0 127.0.0.1:47740] "auth" "foobared"
1566157215.870306 [0 127.0.0.1:47740] "set" "key_1" "878"
Une autre commande utile pour le débogage est info
, qui renvoie plusieurs blocs d’informations et de statistiques sur le serveur :
- info
Output# Server
redis_version:6.0.16
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:a3fdef44459b3ad6
redis_mode:standalone
os:Linux 5.15.0-41-generic x86_64
. . .
Cette commande renvoie beaucoup d’informations. Si vous voulez seulement retourner un seul bloc d’informations, vous pouvez le spécifier comme argument de info
:
- info CPU
Output# CPU
used_cpu_sys:173.16
used_cpu_user:70.89
used_cpu_sys_children:0.01
used_cpu_user_children:0.04
Remarquez que les informations renvoyées par la commande info
dépendront de la version de Redis que vous utilisez.
Utilisation de la commande keys
La commande keys
est utile dans les cas où vous avez oublié le nom d’une clé, ou peut-être que vous en avez créé une mais avez accidentellement mal orthographié son nom. keys
recherche des clés qui correspondent à un motif :
- keys pattern
Les variables de style glob suivantes sont prises en charge :
?
est un joker représentant n’importe quel caractère, doncs?mmy
correspond àsammy
,sommy
, etsqmmy
*
est un joker qui représente n’importe quel nombre de caractères, y compris aucun caractère du tout, doncsa*y
correspond àsammy
,say
,sammmmmmy
, etsalmony
- Vous pouvez spécifier deux caractères ou plus que le motif peut inclure en les plaçant entre crochets, donc
s[ai]mmy
correspond àsammy
etsimmy
, mais pas àsummy
- Pour définir un joker qui ignore une ou plusieurs lettres, enveloppez-les entre crochets et précédez-les d’un accent circonflexe (
^
), doncs[^oi]mmy
correspond àsammy
etsxmmy
, mais pas àsommy
ousimmy
- Pour définir un joker qui inclut une plage de lettres, séparez le début et la fin de la plage par un trait d’union et enveloppez-le entre crochets, donc
s[a-o]mmy
correspond àsammy
,skmmy
, etsommy
, mais pas àsrmmy
Avertissement : La documentation Redis avertit que keys
ne doit presque jamais être utilisé en environnement de production car il peut avoir un impact négatif majeur sur les performances.
Conclusion
Ce guide détaille plusieurs commandes utiles pour le dépannage et la résolution des problèmes que l’on pourrait rencontrer en travaillant avec Redis. S’il existe d’autres commandes, arguments ou procédures connexes que vous aimeriez apprendre dans ce guide, veuillez demander ou faire des suggestions dans les commentaires.
Pour plus d’informations sur les commandes Redis, consultez notre série de tutoriels sur Comment Gérer une Base de Données Redis.
Source:
https://www.digitalocean.com/community/cheatsheets/how-to-troubleshoot-issues-in-redis