Slow Log ist ein Protokollierungssystem, das von Redis verwendet wird, um Befehlsanfragen aufzuzeichnen, deren Abfrageausführungszeit eine bestimmte Zeit überschreitet. Die Abfrageausführungszeit bezieht sich auf die Zeit, die für die Ausführung eines Abfragebefehls aufgewendet wird, ausgenommen E/A-Vorgänge wie Client-Antworten (Sprechen) und Senden von Antworten. Darüber hinaus wird das langsame Protokoll im Speicher gespeichert und die Lese- und Schreibgeschwindigkeit ist sehr hoch, sodass Sie es bedenkenlos verwenden können und sich keine Sorgen machen müssen, dass die Geschwindigkeit von Redis durch das Einschalten des langsamen Protokolls beeinträchtigt wird.
Die Serverkonfiguration verfügt über zwei Optionen im Zusammenhang mit langsamen Abfrageprotokollen:
slowlog-log-slower-than: Die Option gibt an, wie viele Mikrosekunden die Ausführungszeit überschreitet (1 Sekunde entspricht). 1.000.000 Mikrosekunden) Befehlsanfragen werden im Protokoll aufgezeichnet. Wenn der Wert dieser Option beispielsweise 100 ist, werden Befehle, deren Ausführung mehr als 100 Mikrosekunden dauert, im langsamen Abfrageprotokoll aufgezeichnet. Wenn der Wert dieser Option 500 ist, werden Befehle aufgezeichnet, deren Ausführung mehr als 500 Mikrosekunden dauert wird im Protokoll für langsame Abfragen protokolliert.
Die Option slowlog-max-len wird verwendet, um die maximale Anzahl langsamer Abfrageprotokolle zu bestimmen, die vom Server gespeichert werden. Der Server verwendet eine First-In-First-Out-Methode, um mehrere langsame Abfrageprotokolle zu speichern: Wenn die Anzahl der vom Server gespeicherten langsamen Abfrageprotokolle dem Wert der Option slowlog-max-len entspricht, fügt der Server zuerst die Protokolle hinzu Das älteste Protokoll für langsame Abfragen wird gelöscht, bevor ein neues Protokoll für langsame Abfragen hinzugefügt wird. Wenn beispielsweise der Wert von slowlog-max-len des Servers 100 beträgt und davon ausgegangen wird, dass der Server 100 langsame Abfrageprotokolle gespeichert hat, muss der Server, wenn er beabsichtigt, ein neues Protokoll hinzuzufügen, zuerst das älteste derzeit gespeicherte Protokoll löschen . Protokolle und fügen Sie dann neue Protokolle hinzu.
Sehen wir uns ein Beispiel für die Slow-Query-Log-Funktion an. Verwenden Sie zunächst den Befehl CONFIG_SET, um den Wert der Option slowlog-log-slower-than auf 0 Mikrosekunden zu setzen, sodass jeder vom Redis-Server ausgeführte Befehl aufgezeichnet wird Setzen Sie dann im langsamen Abfrageprotokoll den Wert der Option slowlog-max-len auf 5, sodass der Server nur bis zu 5 langsame Abfrageprotokolle speichern kann:
redis> CONFIG SET slowlog-log-slower-than 0 OK redis> CONFIG SET slowlog-max-len 5 OK
Dann verwenden wir den Client, um mehrere Befehlsanfragen zu senden :
redis> SET msg "hello world"OK redis> SET number 10086 OK redis> SET database "Redis"OK
Verwenden Sie dann den Befehl SLOWLOG GET, um das vom Server gespeicherte Slow-Query-Protokoll anzuzeigen:
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"
Wenn zu diesem Zeitpunkt ein weiterer SLOWLOG GET 1-Befehl ausgeführt wird, sehen wir, dass der zuletzt ausgeführte SLOWLOG GET-Befehl aufgezeichnet wurde Das langsame Abfrageprotokoll und die älteste Nummer Das langsame Abfrageprotokoll mit dem Wert 0 wurde gelöscht und die Anzahl der langsamen Abfrageprotokolle auf dem Server beträgt immer noch 5:
redis> SLOWLOG GET 1 1) 1) (integer) 5 2) (integer) 1378781521 3) (integer) 61 4) 1) "SLOWLOG" 2) "GET"
Die eindeutige ID des Protokolls wird nur zurückgesetzt wenn der Redis-Server neu gestartet wird, wodurch eine wiederholte Verarbeitung von Protokollen vermieden werden kann (z. B. Sie möchten möglicherweise eine E-Mail senden, um Sie jedes Mal zu benachrichtigen, wenn eine neue langsame Abfrage entdeckt wird).
Verwenden Sie den Befehl SLOWLOG LEN, um die aktuelle Anzahl der Protokolle anzuzeigen.
Bitte beachten Sie den Unterschied zwischen diesem Wert und slower-max-len. Einer ist die aktuelle Anzahl von Protokollen und der andere ist die maximale Anzahl von Protokollen, die aufgezeichnet werden dürfen.
redis> SLOWLOG LEN (integer) 5
Verwenden Sie den Befehl SLOWLOG RESET, um das langsame Protokoll zu löschen.
redis> SLOWLOG RESET OK
Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Redis-Protokoll für langsame Abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!