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.
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
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
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"
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"
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
Utilisez la commande SLOWLOG RESET pour effacer le journal lent.
redis> SLOWLOG RESET OK
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!