한줄공지
  • 등록된 공지내용이 없습니다.

Redis CLI 명령어 완벽 가이드

2025년 9월 15일
조회수 8
코멘트 0

목차

Redis CLI란 무엇인가?

Redis CLI(Command Line Interface)는 Redis 데이터베이스와 상호작용하기 위한 공식 명령줄 도구입니다. 개발자와 시스템 관리자가 Redis 서버에 연결하여 데이터를 조작하고 서버 상태를 모니터링할 수 있는 강력한 인터페이스를 제공합니다.

Redis CLI의 주요 특징

  • 간단한 문법: 직관적이고 배우기 쉬운 명령어 구조
  • 실시간 상호작용: 즉시 결과를 확인할 수 있는 대화형 환경
  • 배치 처리: 스크립트를 통한 자동화 지원
  • 모니터링 기능: 실시간 성능 및 상태 모니터링

Redis CLI 설치 및 연결

설치 방법

Ubuntu/Debian:

sudo apt update
sudo apt install redis-tools

CentOS/RHEL:

sudo yum install redis
# 또는
sudo dnf install redis

macOS (Homebrew):

brew install redis

Windows:

  • Redis 공식 사이트에서 Windows용 바이너리 다운로드
  • 또는 WSL(Windows Subsystem for Linux) 사용

기본 연결 방법

# 로컬 Redis 서버 연결 (기본 포트 6379)
redis-cli

# 특정 호스트 및 포트 지정
redis-cli -h localhost -p 6379

# 비밀번호가 설정된 서버 연결
redis-cli -h localhost -p 6379 -a your_password

# 특정 데이터베이스 선택 (기본값: 0)
redis-cli -h localhost -p 6379 -n 1


기본 연결 명령어

연결 테스트 및 정보 확인

# 서버 응답 테스트
PING
# 결과: PONG

# 서버 정보 확인
INFO

# 특정 섹션 정보만 확인
INFO memory
INFO replication
INFO stats

# 현재 연결된 클라이언트 정보
CLIENT LIST

# 서버 설정 확인
CONFIG GET *
CONFIG GET maxmemory

데이터베이스 관리

# 데이터베이스 선택 (0-15, 기본 16개)
SELECT 0
SELECT 1

# 현재 데이터베이스의 모든 키 확인
KEYS *

# 패턴으로 키 검색
KEYS user:*
KEYS *session*

# 데이터베이스 크기 확인
DBSIZE

# 현재 데이터베이스 비우기
FLUSHDB

# 모든 데이터베이스 비우기 (주의!)
FLUSHALL


데이터 타입별 핵심 명령어

String 타입

# 기본 설정 및 조회
SET key "value"
GET key

# 여러 키 동시 설정/조회
MSET key1 "value1" key2 "value2"
MGET key1 key2

# 만료 시간과 함께 설정
SETEX key 3600 "value"  # 3600초 후 만료
SET key "value" EX 3600  # 동일한 효과

# 키가 존재하지 않을 때만 설정
SETNX key "value"

# 숫자 증가/감소
INCR counter
DECR counter
INCRBY counter 5
DECRBY counter 3

# 문자열 추가
APPEND key "additional_text"

Hash 타입

# 해시 필드 설정/조회
HSET user:1 name "John" age 30
HGET user:1 name

# 여러 필드 동시 설정/조회
HMSET user:1 name "John" age 30 email "john@example.com"
HMGET user:1 name age

# 모든 필드 조회
HGETALL user:1

# 필드 존재 확인
HEXISTS user:1 name

# 필드 삭제
HDEL user:1 email

# 해시의 모든 키 또는 값 조회
HKEYS user:1
HVALS user:1

# 필드 개수 확인
HLEN user:1

List 타입

# 리스트 앞/뒤에 요소 추가
LPUSH mylist "first"
RPUSH mylist "last"

# 리스트에서 요소 제거 및 반환
LPOP mylist
RPOP mylist

# 리스트 범위 조회
LRANGE mylist 0 -1  # 전체 조회
LRANGE mylist 0 4   # 처음 5개 요소

# 특정 인덱스 요소 조회/설정
LINDEX mylist 0
LSET mylist 0 "new_value"

# 리스트 길이 확인
LLEN mylist

# 요소 삽입
LINSERT mylist BEFORE "existing_value" "new_value"

Set 타입

# 세트에 멤버 추가
SADD myset "member1" "member2"

# 멤버 존재 확인
SISMEMBER myset "member1"

# 모든 멤버 조회
SMEMBERS myset

# 랜덤 멤버 조회
SRANDMEMBER myset
SRANDMEMBER myset 3  # 3개 랜덤 선택

# 멤버 제거
SREM myset "member1"

# 세트 크기 확인
SCARD myset

# 세트 연산
SUNION set1 set2      # 합집합
SINTER set1 set2      # 교집합
SDIFF set1 set2       # 차집합

Sorted Set 타입

# 스코어와 함께 멤버 추가
ZADD leaderboard 100 "player1" 85 "player2" 95 "player3"

# 스코어 범위로 조회 (오름차순)
ZRANGE leaderboard 0 -1
ZRANGE leaderboard 0 -1 WITHSCORES

# 스코어 범위로 조회 (내림차순)
ZREVRANGE leaderboard 0 -1 WITHSCORES

# 특정 스코어 범위 조회
ZRANGEBYSCORE leaderboard 80 100

# 멤버의 스코어 조회
ZSCORE leaderboard "player1"

# 멤버의 순위 조회
ZRANK leaderboard "player1"    # 오름차순 순위
ZREVRANK leaderboard "player1" # 내림차순 순위

# 스코어 증가
ZINCRBY leaderboard 10 "player1"


시스템 관리 명령어

키 관리

# 키 존재 확인
EXISTS key

# 키 삭제
DEL key1 key2 key3

# 키 이름 변경
RENAME oldkey newkey

# 키의 데이터 타입 확인
TYPE key

# 키의 만료 시간 설정
EXPIRE key 3600
EXPIREAT key 1609459200  # Unix timestamp

# 만료 시간 조회
TTL key      # 초 단위
PTTL key     # 밀리초 단위

# 만료 시간 제거 (영구 보존)
PERSIST key

메모리 관리

# 메모리 사용량 분석
MEMORY USAGE key
MEMORY STATS

# 가비지 컬렉션 실행
MEMORY PURGE

# 특정 키의 메모리 사용량 최적화
MEMORY OPTIMIZE key


실무에서 자주 사용하는 고급 명령어

트랜잭션

# 트랜잭션 시작
MULTI

# 명령어들 큐에 추가
SET key1 "value1"
INCR counter
SADD myset "member1"

# 트랜잭션 실행
EXEC

# 트랜잭션 취소
DISCARD

파이프라인 및 배치 처리

# 파일에서 명령어 실행
redis-cli < commands.txt

# 단일 명령어 실행 후 종료
redis-cli SET key "value"
redis-cli GET key

# CSV 형태로 출력
redis-cli --csv LRANGE mylist 0 -1

Pub/Sub (발행/구독)

# 채널 구독
SUBSCRIBE news sports

# 패턴으로 구독
PSUBSCRIBE news:*

# 메시지 발행
PUBLISH news "Breaking news!"

# 구독 해제
UNSUBSCRIBE news
PUNSUBSCRIBE news:*


성능 모니터링 및 디버깅

실시간 모니터링

# 실시간 명령어 모니터링
MONITOR

# 느린 쿼리 로그 확인
SLOWLOG GET
SLOWLOG GET 10  # 최근 10개

# 느린 쿼리 로그 길이 확인
SLOWLOG LEN

# 느린 쿼리 로그 초기화
SLOWLOG RESET

성능 분석

# 서버 통계 정보
INFO stats
INFO commandstats

# 클라이언트 연결 정보
CLIENT LIST
CLIENT INFO

# 대기 중인 클라이언트 확인
CLIENT PAUSE 1000  # 1초간 모든 클라이언트 일시정지

벤치마킹

# 성능 테스트 (redis-benchmark 사용)
redis-benchmark -h localhost -p 6379 -n 10000 -c 50

# 특정 명령어만 테스트
redis-benchmark -h localhost -p 6379 -t set,get -n 10000


보안 관련 명령어

인증 및 권한

# 비밀번호 인증
AUTH your_password

# 현재 사용자 확인 (Redis 6.0+)
AUTH username password

# ACL 사용자 목록 (Redis 6.0+)
ACL LIST
ACL USERS

# 현재 사용자 정보
ACL WHOAMI

보안 설정

# 위험한 명령어 비활성화 확인
CONFIG GET "rename-command"

# 보안 관련 설정 확인
CONFIG GET protected-mode
CONFIG GET bind
CONFIG GET port


실전 예제 및 베스트 프랙티스

캐시 구현 예제

# 사용자 세션 캐시
SETEX session:abc123 1800 '{"user_id": 1, "username": "john"}'

# 페이지 조회수 카운터
INCR page:views:/home
INCR page:views:/about

# 최근 방문자 목록 (리스트로 관리)
LPUSH recent:visitors "user:123"
LTRIM recent:visitors 0 99  # 최근 100명만 유지

리더보드 시스템

# 게임 점수 리더보드
ZADD game:leaderboard 1500 "player1" 1200 "player2" 1800 "player3"

# 상위 10명 조회
ZREVRANGE game:leaderboard 0 9 WITHSCORES

# 특정 플레이어 순위 확인
ZREVRANK game:leaderboard "player1"

# 플레이어 점수 업데이트
ZINCRBY game:leaderboard 100 "player1"

데이터 백업 및 복원

# 데이터 스냅샷 생성
BGSAVE

# 마지막 저장 시간 확인
LASTSAVE

# 즉시 저장 (블로킹)
SAVE

# RDB 파일 덤프
redis-cli --rdb dump.rdb

# 특정 키들만 덤프
redis-cli --scan --pattern "user:*" | xargs redis-cli DEL

성능 최적화 팁

  1. 키 네이밍 규칙

   # 좋은 예
   user:1:profile
   session:abc123
   cache:product:1
   
   # 피해야 할 예
   user1profile
   abc123
   product1

  1. 만료 시간 설정

   # 캐시 데이터는 항상 TTL 설정
   SETEX cache:user:1 3600 "user_data"
   
   # 세션 데이터
   SETEX session:token 1800 "session_data"

  1. 메모리 효율적 사용

   # 작은 해시는 ziplist 사용
   HSET small:hash field1 value1 field2 value2
   
   # 대용량 데이터는 적절히 분할
   HSET user:1:basic name "John" age 30
   HSET user:1:preferences theme "dark" lang "ko"

문제 해결 가이드

연결 문제:

# 연결 테스트
redis-cli ping

# 포트 확인
netstat -tlnp | grep 6379

# 방화벽 확인
sudo ufw status

성능 문제:

# 느린 쿼리 확인
SLOWLOG GET 10

# 메모리 사용량 확인
INFO memory

# 클라이언트 연결 확인
CLIENT LIST

데이터 문제:

# 키 패턴 분석
KEYS pattern*

# 데이터 타입 확인
TYPE suspicious_key

# 메모리 사용량 분석
MEMORY USAGE key_name


결론

Redis CLI는 Redis 데이터베이스를 효과적으로 관리하고 활용하기 위한 필수 도구입니다. 이 가이드에서 소개한 명령어들을 숙지하고 실무에 적용하면 Redis의 강력한 기능을 최대한 활용할 수 있습니다.

추가 학습 리소스

Redis CLI 마스터리는 지속적인 실습을 통해 완성됩니다. 개발 환경에서 다양한 시나리오를 실험해보며 경험을 쌓아가시기 바랍니다.


Keywords: redis cli, redis 명령어, redis 사용법, redis cli 명령어, redis 튜토리얼, redis 데이터베이스, redis 설치, redis 연결, redis 모니터링, redis 실무

Meta Description: Redis CLI 명령어 사용법을 단계별로 학습하세요. 연결, 데이터 조작, 모니터링까지 실무에서 꼭 필요한 Redis 명령어 50개와 실전 예제를 제공합니다.

안정적이고 저렴한 가상 서버(VPS) 안내

안정적인 서버 호스팅을 찾고 계신가요? 지금 Vultr 호스팅을 한번 이용 해 보세요. 지금 보고 계신 HaruLogs 사이트도 Vultr에서 VPS 호스팅 하고 있습니다. 한국, 일본, 미국등 다양한 국가에 클릭 몇번으로 안정적이고 저렴한 VPS를 운영 할 수 있습니다.

아래 배너를 통해 회원 가입을 하시면 100달러의 무료 크레딧을 받을 수 있습니다. 100달러의 무료 크레딧은 Vultr의 최소 사양 VPS를 20대 동시 운영가능한 크레딧입니다.

지금 무료로 Vultr $100 크레딧 선물 받기

 

Vultr 서비스 요약

  • VPS
    • 인스턴스
      • AMD 또는 Intel High Performance 인스턴스 최저 $6 - 1vCPU, 1GB Memory, 2TB Bandwidth, 25GB NVMe
    • 엣지
  • Block Storage
  • Object Storage (AWS S3 호환)
  • Firewall
  • Network
  • Load Balancers
  • Kubernetes
  • Databases
포스트 통계
지금 보고있는 포스트의 통계 데이터를 확인 해 보세요.
  • 총 조회수
    9
  • 최근 30일 조회수
    9
연관 포스트
코멘트 작성