Maison > base de données > Redis > le corps du texte

Comment utiliser le journal des requêtes lentes Redis

王林
Libérer: 2023-05-28 15:37:12
avant
1150 Les gens l'ont consulté

Journal des requêtes lentes

Qu'est-ce que SLOW LOG ?

Slow log est un système de journalisation utilisé par Redis pour enregistrer les demandes de commandes dont le temps d'exécution des requêtes dépasse un temps donné. Le temps d'exécution d'une requête fait référence au temps passé à exécuter une commande de requête, à l'exclusion des opérations d'E/S telles que la réponse du client (parler) et l'envoi de réponses. De plus, le journal lent est stocké dans la mémoire et la vitesse de lecture et d'écriture est très rapide, vous pouvez donc l'utiliser en toute confiance et n'avez pas à craindre d'endommager la vitesse de Redis en activant le journal lent.

Comment utiliser le journal des requêtes lentes Redis
Configuration et affichage de SLOWLOG

La configuration du serveur propose deux options liées aux journaux de requêtes lents :

slowlog-log-slower-than : L'option spécifie le nombre de microsecondes que dépasse le temps d'exécution (1 seconde est égale à 1 000 000 microsecondes) Les demandes de commandes seront enregistrées dans le journal. Par exemple, si la valeur de cette option est 100, alors les commandes qui prennent plus de 100 microsecondes à s'exécuter seront enregistrées dans le journal des requêtes lentes ; si la valeur de cette option est 500, alors les commandes qui prennent plus de 500 microsecondes à s'exécuter ; sera enregistré dans le journal des requêtes lentes ;

L'option slowlog-max-len est utilisée pour déterminer le nombre maximum de journaux de requêtes lentes conservés par le serveur. Le serveur utilise la méthode premier entré, premier sorti pour enregistrer plusieurs journaux de requêtes lentes : lorsque le nombre de journaux de requêtes lentes stockés par le serveur est égal à la valeur de l'option slowlog-max-len, le serveur ajoutera d'abord le le journal des requêtes lentes le plus ancien avant d'ajouter un nouveau journal des requêtes lentes. Un journal des requêtes lentes est supprimé. Par exemple, si la valeur de slowlog-max-len du serveur est 100, et en supposant que le serveur a stocké 100 journaux de requêtes lentes, alors si le serveur a l'intention d'ajouter un nouveau journal, il doit d'abord supprimer le plus ancien actuellement enregistré. .journaux, puis ajoutez de nouveaux journaux.

Regardons un exemple de la fonction de journalisation des requêtes lentes. Tout d'abord, utilisez la commande CONFIG_SET pour définir la valeur de l'option slowlog-log-slower-than à 0 microseconde, afin que toute commande exécutée par le serveur Redis soit enregistrée. dans le journal des requêtes lentes. , puis définissez la valeur de l'option slowlog-max-len sur 5, afin que le serveur ne puisse enregistrer que jusqu'à 5 journaux de requêtes lentes :

redis> CONFIG SET slowlog-log-slower-than 0
OK

redis> CONFIG SET slowlog-max-len 5
OK
Copier après la connexion

Ensuite, nous utilisons le client pour envoyer plusieurs requêtes de commande. :

redis> SET msg "hello world"OK

redis> SET number 10086
OK

redis> SET database "Redis"OK
Copier après la connexion

Utilisez ensuite la commande SLOWLOG GET pour afficher le journal des requêtes lentes enregistré par le serveur :

redis> SLOWLOG GET
1) 1) (integer) 4               #日志的唯一标识符(uid);  2) (integer) 1378781447      #命令执行时的UNIX时间戳;  3) (integer) 13              #命令执行的时长,以微秒计算;  4) 1) "SET"                  #命令以及命令参数;     2) "database"     3) "Redis"2) 1) (integer) 3
  2) (integer) 1378781439
  3) (integer) 10
  4) 1) "SET"     2) "number"     3) "10086"3) 1) (integer) 2
  2) (integer) 1378781436
  3) (integer) 18
  4) 1) "SET"     2) "msg"     3) "hello world"4) 1) (integer) 1
  2) (integer) 1378781425
  3) (integer) 11
  4) 1) "CONFIG"  2) "SET"  3) "slowlog-max-len"  4) "5"5) 1) (integer) 0
  2) (integer) 1378781415
  3) (integer) 53
  4) 1) "CONFIG"     2) "SET"     3) "slowlog-log-slower-than"     4) "0"
Copier après la connexion

Si une autre commande SLOWLOG GET 1 est exécutée à ce moment, alors nous verrons que la dernière commande SLOWLOG GET exécutée a été enregistrée dans le journal des requêtes lentes et le numéro le plus ancien Le journal des requêtes lentes avec une valeur de 0 a été supprimé et le nombre de journaux de requêtes lentes sur le serveur est toujours de 5 :

redis> SLOWLOG GET 1
1) 1) (integer) 5
  2) (integer) 1378781521
  3) (integer) 61
  4) 1) "SLOWLOG"     2) "GET"
Copier après la connexion

L'ID unique du journal sera seulement réinitialisé lorsque le serveur Redis est redémarré, ce qui peut éviter un traitement répété du journal (par exemple, vous souhaiterez peut-être envoyer un e-mail pour vous avertir chaque fois qu'une nouvelle requête lente est découverte).

Utilisez la commande SLOWLOG LEN pour afficher le nombre actuel de journaux.

Veuillez noter la différence entre cette valeur et slower-max-len L'une est le nombre actuel de journaux et l'autre est le nombre maximum de journaux autorisés à être enregistrés.

redis> SLOWLOG LEN
(integer) 5
Copier après la connexion
Effacer le journal

Utilisez la commande SLOWLOG RESET pour effacer le journal lent.

redis> SLOWLOG RESET
OK
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal