본문 바로가기
Study/DB

Redis CLI 시작하기: 알아두면 유용한 명령어와 활용 팁

by 코드콩 2024. 9. 4.
728x90
반응형

Redis CLI란?

Redis CLI는 Redis와 상호작용할 수 있는 명령줄 도구로, 사용자가 직접 명령어를 입력하여 데이터베이스와 소통할 수 있게 해줍니다. 이를 통해 데이터를 손쉽게 저장, 조회, 삭제할 수 있으며, Redis 서버의 상태를 모니터링하거나 성능 문제를 분석하는 데도 유용합니다.

 

👀 동일하게 Docker 환경에서 Redis CLI를 사용하는 방법을 알아보겠습니다.

 

Docker 컨테이너 내부에서 Redis CLI 실행

Docker 환경에서 Redis CLI를 사용하려면 먼저 Redis가 실행 중인 컨테이너에 접속해야 합니다. 다음 명령어를 통해 Redis CLI에 접근할 수 있습니다. 여기서 [컨테이너ID]는 Redis가 실행 중인 Docker 컨테이너의 ID입니다. 해당 명령어를 실행하면 Redis CLI가 활성화되고, 다음과 같은 형태의 프롬프트가 표시됩니다.

$ docker exec -it [컨테이너ID] redis-cli
> 127.0.0.1:6379

redis-cli 실행

컨테이너 쉘 접속 및 벤치마크

때로는 Redis 컨테이너의 쉘에 직접 접속하여 다양한 작업을 수행해야 할 때가 있습니다. 다음 명령어를 사용하여 컨테이너의 쉘에 접근할 수 있습니다.

$ docker exec -it [컨테이너ID] /bin/bash

 

쉘에 접속한 후에는 redis-benchmark 명령어를 사용해 Redis 성능 테스트를 실행할 수 있습니다.

> redis-benchmark

 

Redis 리소스 모니터링

Redis의 메모리 사용률, 클라이언트 접속 수, 블락된 클라이언트 수, 요청 수 등을 실시간으로 모니터링할 수 있는 --stat 명령어도 자주 사용됩니다.

$ docker exec -it [컨테이너ID] redis-cli --stat

 

 

주요 Redis CLI 명령어

Redis CLI에서 자주 사용되는 명령어들은 데이터 조작, 관리, 모니터링 등에 활용됩니다. 다양한 명령어 중, 특히 유용한 명령어들을 정리해보았습니다.

1. 데이터 조작 명령어

  • SET key value: 데이터를 저장합니다.
$ SET name "Alice"
  • GET key: 데이터를 조회합니다.
$ GET name
  • DEL key: 데이터를 삭제합니다.
$ DEL name
  • EXISTS key: 키가 존재하는지 확인합니다.
$ EXISTS name
  • INCR key: 해당 키의 값을 1씩 증가시킵니다.
$ INCR counter
  • DECR key: 해당 키의 값을 1씩 감소시킵니다.
$ DECR counter
  • LPUSH key value [value ...]: 리스트의 왼쪽(앞)에 하나 이상의 값을 추가합니다.
$ LPUSH mylist "value1" "value2"
  • RPUSH key value [value ...]: 리스트의 오른쪽(뒤)에 하나 이상의 값을 추가합니다.
$ RPUSH mylist "value3"
  • LPOP key: 리스트의 왼쪽(앞)에서 첫 번째 요소를 제거하고 반환합니다.
$ LPOP mylist
  • RPOP key: 리스트의 오른쪽(뒤)에서 마지막 요소를 제거하고 반환합니다.
$ RPOP mylist
  • SADD key member [member ...]: 집합(Set)에 하나 이상의 멤버를 추가합니다.
$ SADD myset "member1" "member2"
  • SMEMBERS key: 집합(Set)의 모든 멤버를 반환합니다.
$ SMEMBERS myset

 

2. 데이터 관리 및 모니터링 명령어

  • KEYS pattern: 특정 패턴과 일치하는 모든 키를 검색합니다.
$ KEYS *
  • EXPIRE key seconds: 지정된 키에 대해 TTL(Time To Live)을 설정합니다.
$ EXPIRE name 60
  • TTL key: 지정된 키의 TTL(Time To Live)을 확인합니다.
$ TTL name
  • FLUSHDB: 현재 선택된 데이터베이스의 모든 키를 삭제합니다.
$ FLUSHDB
  • FLUSHALL: 모든 데이터베이스의 모든 키를 삭제합니다.
$ FLUSHALL

 

3. 서버 정보 및 모니터링

  • INFO: Redis 서버의 다양한 정보를 확인합니다.
$ INFO
  • MONITOR: 모든 Redis 요청을 실시간으로 모니터링합니다.
$ MONITOR
  • SLOWLOG GET [count]: 일정 시간 이상 걸린 명령어의 로그를 확인합니다.
  • 10ms 이상 소요된 명령어 slowlog에 기록되며, 이 명령어를 통해 이러한 로그들을 확인할 수 있습니다.
$ SLOWLOG GET 10
  • SLOWLOG GET 출력 포맷 : 각 로그 항목은 리스트로 반환되며, 각 항목은 아래와 같은 구성 요소를 포함합니다.
    1. ID (Log Entry ID) : 이 로그 항목의 고유 ID입니다. 각 슬로우 로그 항목은 증가하는 ID를 가집니다.
    2. Timestamp (Unix Timestamp) :명령어가 실행된 시간을 나타내는 Unix 타임스탬프입니다. 초 단위로 표시됩니다.
    3. Execution Time (Execution Duration in microseconds) : 명령어가 실행되는데 걸린 시간입니다. 마이크로초(µs) 단위로 표시됩니다.
    4. Command (Executed Command and Arguments) : 실행된 명령어와 그에 따른 인자들(Arguments)이 포함됩니다. 명령어와 인자들은 리스트 형태로 출력됩니다.
$ 127.0.0.1:6379> SLOWLOG GET 1
1) 1) (integer) 13           # ID
   2) (integer) 1609459200   # Timestamp (Unix Timestamp)
   3) (integer) 1024         # Execution Time (in microseconds)
   4) 1) "SET"               # Command
      2) "key1"
      3) "value1"
  • DBSIZE: 현재 데이터베이스에 저장된 키의 수를 확인합니다.
$ DBSIZE
  • CLIENT LIST: 현재 연결된 클라이언트의 목록을 확인합니다.
$ CLIENT LIST
  • CONFIG GET parameter: Redis 설정을 확인합니다.
$ CONFIG GET maxmemory
  • CONFIG SET parameter value: Redis 설정을 변경합니다.
  • 영구적 적용 아님: CONFIG SET으로 변경한 설정은 서버를 재시작하면 원래 설정으로 돌아갑니다. 영구적으로 설정을 변경하려면 redis.conf 파일을 직접 수정하거나, CONFIG REWRITE 명령어를 사용하여 현재 설정을 redis.conf에 저장해야 합니다.
$ CONFIG SET maxmemory 128mb

 

4. 논리적인 데이터베이스 구분

Redis는 논리적으로 데이터베이스를 구분하여 여러 데이터베이스를 동시에 사용할 수 있습니다. SELECT 명령어를 사용하여 원하는 데이터베이스를 선택할 수 있습니다.

$ SELECT 0
$ SELECT 1
$ SELECT 2

 

Redis GUI: RedisInsight

GUI 환경에서 Redis를 사용하고 싶다면, RedisInsight를 사용하는 것이 좋습니다. 이 도구는 직관적인 인터페이스를 제공하여 Redis의 데이터를 쉽게 관리할 수 있도록 도와줍니다.

사이트 : https://redis.io/insight/

 

RedisInsight - The Best Redis GUI

RedisInsight provides an intuitive and efficient graphical interface for Redis, allowing you to interact with your databases and manage your data.

redis.io

RedisInsight

728x90
반응형