スロー ログは、クエリの実行に一定の時間を超えるコマンド リクエストを記録するために Redis によって使用されるログ システムです。クエリ実行時間とは、クライアントの応答 (通話) や応答の送信などの IO 操作を除いた、クエリ コマンドの実行にかかった時間を指します。また、低速ログはメモリに保存され、読み書き速度が非常に速いため、低速ログをオンにすることで Redis の速度が損なわれる心配がなく、安心してご利用いただけます。
サーバー構成には、スロー クエリ ログに関連する 2 つのオプションがあります:
slowlog-log-swer- than: オプションは、実行時間が何マイクロ秒 (1 秒は 1,000,000 マイクロ秒に相当) を超えるコマンド リクエストをログに記録するかを指定します。たとえば、このオプションの値が 100 の場合、実行に 100 マイクロ秒を超えるコマンドがスロー クエリ ログに記録されます。このオプションの値が 500 の場合、実行に 500 マイクロ秒を超えるコマンドが記録されます。スロークエリログへのログ記録など。
オプションslowlog-max-lenは、サーバーが保持するスロークエリログの最大数を決定するために使用されます。サーバーは、先入れ先出し方式を使用して、複数のスロー クエリ ログを保存します。サーバーによって保存されたスロー クエリ ログの数が、slowlog-max-len オプションの値と等しい場合、サーバーは最初に新しいスロー クエリ ログを追加する前に、最も古いスロー クエリ ログが削除されます。たとえば、サーバーのslowlog-max-lenの値が100で、サーバーが100個のスロークエリログを保存していると仮定すると、サーバーが新しいログを追加する場合は、現在保存されている最も古いログを最初に削除する必要があります。 . ログを作成し、新しいログを追加します。
スロー クエリ ログ関数の例を見てみましょう。まず、CONFIG_SET コマンドを使用して、slowlog-log-slower-than オプションの値を 0 マイクロ秒に設定します。 Redis サーバーが記録されます。スロー クエリ ログで、slowlog-max-len オプションの値を 5 に設定して、サーバーが最大 5 つのスロー クエリ ログのみを保存できるようにします。クライアントを使用していくつかのコマンド リクエストを送信します。
redis> CONFIG SET slowlog-log-slower-than 0 OK redis> CONFIG SET slowlog-max-len 5 OK
次に、SLOWLOG GET コマンドを使用して、サーバーによって保存されたスロー クエリ ログを表示します。
redis> SET msg "hello world"OK redis> SET number 10086 OK redis> SET database "Redis"OK
別の SLOWLOG GET 1 コマンドを実行すると、今回は、最後に実行された SLOWLOG GET コマンドがスロー クエリ ログに記録され、番号 0 の最も古いスロー クエリ ログが削除されたことがわかります。サーバー上のスロー クエリ ログの数は 5 のままです:
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"
ログの一意の ID は、Redis サーバーの再起動時にのみリセットされます。これにより、ログの繰り返し処理を回避できます (たとえば、ログが再起動されるたびに電子メールを送信して通知することもできます)。新しい遅いクエリが発見されました)。
現在のログ数を表示するには、SLOWLOG LEN コマンドを使用します。
この値と thrower-max-len の違いに注意してください。1 つは現在のログの数で、もう 1 つは記録できるログの最大数です。
redis> SLOWLOG GET 1 1) 1) (integer) 5 2) (integer) 1378781521 3) (integer) 61 4) 1) "SLOWLOG" 2) "GET"
ログのクリア
以上がRedis スロークエリログの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。