>  기사  >  데이터 베이스  >  Redis 느린 쿼리 로그를 사용하는 방법

Redis 느린 쿼리 로그를 사용하는 방법

王林
王林앞으로
2023-05-28 15:37:121117검색

느린 쿼리 로그

SLOW LOG란 무엇인가요?

느린 로그(Slow log)는 쿼리 실행 시간이 특정 시간을 초과하는 명령 요청을 기록하기 위해 Redis에서 사용하는 로깅 시스템입니다. 쿼리 실행 시간은 클라이언트 응답(대화) 및 응답 전송과 같은 IO 작업을 제외하고 쿼리 명령을 실행하는 데 소요된 시간을 의미합니다. 또한, 느린 로그는 메모리에 저장되며, 읽기 및 쓰기 속도가 매우 빨라 안심하고 사용하실 수 있으며, 느린 로그를 켜도 Redis의 속도가 손상될 염려는 하지 않으셔도 됩니다.

Redis 느린 쿼리 로그를 사용하는 방법
SLOWLOG 설정 및 보기

서버 구성에는 느린 쿼리 로그와 관련된 두 가지 옵션이 있습니다.

slowlog-log-slower-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

그런 다음 클라이언트를 사용하여 여러 명령 요청을 보냅니다. :

redis> SET msg "hello world"OK

redis> SET number 10086
OK

redis> SET database "Redis"OK

그런 다음 SLOWLOG GET 명령을 사용하여 서버에 저장된 느린 쿼리 로그를 확인합니다.

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"

이때 또 다른 SLOWLOG GET 1 명령이 실행되면 마지막으로 실행된 SLOWLOG GET 명령이 에 기록된 것을 볼 수 있습니다. 느린 쿼리 로그와 가장 오래된 숫자 값이 0인 느린 쿼리 로그는 삭제되었으며 서버의 느린 쿼리 로그 개수는 여전히 5개입니다.

redis> SLOWLOG GET 1
1) 1) (integer) 5
  2) (integer) 1378781521
  3) (integer) 61
  4) 1) "SLOWLOG"     2) "GET"

로그의 고유 ID만 재설정됩니다. Redis 서버가 다시 시작되면 로그의 반복 처리를 피할 수 있습니다(예: 새로운 느린 쿼리가 발견될 때마다 알리기 위해 이메일을 보낼 수 있습니다).

현재 로그 수를 보려면 SLOWLOG LEN 명령을 사용하세요.

이 값과 Slow-max-len의 차이점에 유의하세요. 하나는 현재 로그 수이고 다른 하나는 기록할 수 있는 최대 로그 수입니다.

redis> SLOWLOG LEN
(integer) 5
로그 지우기

느린 로그를 지우려면 SLOWLOG RESET 명령을 사용하세요.

rreee

위 내용은 Redis 느린 쿼리 로그를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제