Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

Redis CLI 핵심 명령어 총정리: 연결부터 서버 진단까지

Redis CLI 핵심 명령어 총정리: 연결부터 서버 진단까지

Redis는 매우 직관적인 명령줄 인터페이스(CLI)를 제공합니다. 비교적 단순해 보이지만, 의외로 유용한 기능들이 숨어 있어 이를 잘 활용하면 Redis 서버 관리와 문제 분석에 큰 도움이 됩니다. 이 글에서는 redis-cli의 기본적인 사용법부터 실무에서 자주 쓰이는 주요 옵션과 기능까지 하나씩 살펴보겠습니다.

1. Redis 서버 접속 및 인증

가장 먼저 할 일은 Redis 서버에 접속하는 것입니다. 호스트 주소, 포트, 비밀번호를 지정하여 간단히 연결할 수 있습니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword
127.0.0.1:6379> PING
PONG

접속에 성공한 뒤 PING 명령을 보냈을 때 PONG 응답이 돌아오면 정상적으로 연결된 것입니다.

접속 후 인증하기

보안상의 이유로 명령줄에 비밀번호를 직접 노출하고 싶지 않다면 -a 옵션을 생략하고, 접속한 후 AUTH 명령으로 인증할 수 있습니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> AUTH mysupersecretpassword
OK
127.0.0.1:6379> PING
PONG

유닉스 소켓으로 연결하기

Redis 서버와 클라이언트가 같은 머신에서 실행 중이라면 TCP 대신 유닉스 소켓을 통해 연결하는 것이 더 효율적일 수 있습니다.

cweid@strange:~$ redis-cli -s /tmp/redis.sock
127.0.0.1:6379> AUTH mysupersecretpassword
OK
127.0.0.1:6379> PING
PONG

참고: 소켓 경로와 함께 호스트명과 포트를 함께 지정하더라도 redis-cli는 유닉스 소켓을 우선적으로 사용합니다.

2. 명령줄에서 바로 명령 실행하기

대화형 모드에 들어가지 않고도 단일 명령의 결과만 표준 출력으로 받아볼 수 있습니다. 스크립트나 모니터링 도구와 연동할 때 특히 유용합니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword PING
PONG

명령 반복 실행 (-r 옵션)

-r(repeat) 옵션을 사용하면 동일한 명령을 지정한 횟수만큼 반복 실행할 수 있습니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword -r 4 PING
PONG
PONG
PONG
PONG

실행 간격 추가 (-i 옵션)

-i 옵션을 -r과 함께 사용하면 각 명령 사이에 지연 시간을 둘 수 있습니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword -i 1 -r 4 PING
PONG
PONG
PONG
PONG

위 예제는 각 PING 명령 사이에 1초씩 대기합니다. 소수점 값을 사용하면 초 단위보다 더 세밀한 간격도 지정 가능합니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword -i 0.1 -r 4 PING
PONG
PONG
PONG
PONG

이 경우 PING 명령이 0.1초(10분의 1초)마다 한 번씩 실행됩니다.

3. 서버 상태 요약 확인 (--stat 옵션)

연결된 Redis 인스턴스에 대한 간단한 진단 정보를 확인하려면 --stat 옵션을 사용하세요.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections          
0          790.80K  1       0       122 (+0)            16          
0          790.80K  1       0       123 (+1)            16          
0          790.80K  1       0       124 (+1)            16          
0          790.80K  1       0       125 (+1)            16          
0          790.80K  1       0       126 (+1)            16          

이 출력을 통해 다음 정보를 실시간으로 파악할 수 있습니다.

  • 서버에 설정된 키(key)의 개수
  • 서버의 전체 메모리 사용량
  • 연결되었거나 블록된 클라이언트 수
  • 서버가 처리한 전체 요청 수
  • 현재 활성화된 연결 수

파일의 상태(stat)를 확인하듯 Redis 서버 전체의 개요를 빠르게 파악하는 데 매우 유용한 명령입니다.

4. 명령 지연 시간(Latency) 측정 (--latency 옵션)

Redis로 들어오는 명령의 지연 시간을 확인하는 방법도 아주 간단합니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword --latency
min: 0, max: 1, avg: 0.13 (763 samples)

최소, 최대, 평균 응답 시간과 함께 샘플링된 요청 수를 확인할 수 있습니다.

참고: 지연 시간은 마이크로초(μs) 단위로 기록됩니다. Redis 지연 시간에 대한 자세한 내용은 공식 문서의 latency monitoring 항목을 참고하세요.

5. 대용량 키 분석 (--bigkeys 옵션)

키스페이스를 스캔하여 크기가 큰 문자열이나 기타 데이터 구조를 찾으려면 --bigkeys 옵션을 사용합니다. 큰 키를 찾는 것은 물론, 키 타입별 분포 현황까지 파악할 수 있어 메모리 최적화에 유용합니다.

cweid@strange:~$ redis-cli -h 127.0.0.1 -p 6379 -a mysupersecretpassword --bigkeys
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest string found so far 'user:paul' with 4 bytes
[00.00%] Biggest string found so far 'barrrr' with 19612 bytes

-------- summary -------

Sampled 4 keys in the keyspace!
Total key length in bytes is 29 (avg len 7.25)

Biggest string found 'barrrr' has 19612 bytes

4 strings with 19624 bytes (100.00% of keys, avg size 4906.00)
0 lists with 0 items (00.00% of keys, avg size 0.00)
0 sets with 0 members (00.00% of keys, avg size 0.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)

각 키의 타입과 크기 등 유용한 정보를 종합적으로 제공받을 수 있습니다.

마무리

redis-cli는 단순한 접속 도구를 넘어 Redis 인스턴스를 관리하고 진단하는 강력한 도구입니다. 내장 옵션들을 적극 활용하면 문제가 발생한 Redis 서버를 신속하게 분석하고 원인을 파악하는 데 큰 도움을 받을 수 있습니다. 오늘 소개한 명령어들을 실무에 바로 적용해 보시기 바랍니다.