Redis CLI 명령어 완벽 가이드

목차
- Redis CLI란 무엇인가?
- Redis CLI 설치 및 연결
- 기본 연결 명령어
- 데이터 타입별 핵심 명령어
- 시스템 관리 명령어
- 실무에서 자주 사용하는 고급 명령어
- 성능 모니터링 및 디버깅
- 보안 관련 명령어
- 실전 예제 및 베스트 프랙티스
- 결론
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
성능 최적화 팁
- 키 네이밍 규칙
# 좋은 예
user:1:profile
session:abc123
cache:product:1
# 피해야 할 예
user1profile
abc123
product1
- 만료 시간 설정
# 캐시 데이터는 항상 TTL 설정
SETEX cache:user:1 3600 "user_data"
# 세션 데이터
SETEX session:token 1800 "session_data"
- 메모리 효율적 사용
# 작은 해시는 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 서비스 요약
- 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