홈/엔지니어/데이터베이스/Redis 기초 실전 — 캐시, 세션, 메시지 큐 …
데이터베이스초급UbuntuDebianCentOSRedis캐시NoSQL

Redis 기초 실전 — 캐시, 세션, 메시지 큐 활용

Redis 설치부터 String·Hash·List·Sorted Set 자료구조 활용, 캐시 전략, TTL까지 실무 중심으로 정리합니다.

목차
  1. 설치
  2. 기본 명령어
  3. Hash — 객체 저장
  4. List — 큐/스택
  5. Set · Sorted Set
  6. Cache-aside 패턴
  7. 모니터링

설치

Bash
# Ubuntu
apt install redis-server

# 접속 테스트
redis-cli ping  # PONG

/etc/redis/redis.conf에서 requirepass yourpassword 설정을 권장합니다.


기본 명령어

Bash
redis-cli

# String
SET user:1:name "Alice"
GET user:1:name
INCR counter
INCRBY counter 10

# TTL (만료)
SET session:abc "token" EX 3600   # 3600초 후 자동 삭제
TTL session:abc                    # 남은 시간 (초)
PERSIST session:abc               # TTL 제거

# 키 조회 (운영 환경에서는 SCAN 사용)
SCAN 0 MATCH user:* COUNT 100

Hash — 객체 저장

Bash
HSET user:1 name "Alice" email "alice@example.com" age 30
HGET user:1 name
HGETALL user:1
HDEL user:1 age
HEXISTS user:1 email  # 1 (있음) / 0 (없음)

List — 큐/스택

Bash
# FIFO 큐
RPUSH tasks "job1" "job2" "job3"
LPOP tasks       # "job1" (왼쪽에서 꺼냄)
LLEN tasks       # 남은 길이

# 블로킹 팝 (워커 대기)
BLPOP tasks 30   # 최대 30초 대기

Set · Sorted Set

Bash
# Set (중복 없음)
SADD tags "redis" "nosql" "cache"
SMEMBERS tags
SISMEMBER tags "redis"  # 1

# Sorted Set (점수로 정렬)
ZADD leaderboard 1500 "alice"
ZADD leaderboard 2300 "bob"
ZRANGE leaderboard 0 -1 WITHSCORES   # 오름차순
ZREVRANGE leaderboard 0 2             # Top 3
ZINCRBY leaderboard 100 "alice"       # 점수 증가

Cache-aside 패턴

Python
import redis, json

r = redis.Redis(host='localhost', port=6379)

def get_user(user_id):
    cache_key = f"user:{user_id}"
    cached = r.get(cache_key)

    if cached:
        return json.loads(cached)

    user = db.query(f"SELECT * FROM users WHERE id = {user_id}")
    r.setex(cache_key, 3600, json.dumps(user))
    return user

모니터링

Bash
# 서버 정보
redis-cli info memory
redis-cli info stats

# 메모리 사용량 상위 키
redis-cli --bigkeys

# 느린 명령 로그
redis-cli slowlog get 10
#Redis#캐시#NoSQL#세션#메시지큐
편집 안내 · Editorial Note

AI 도구가 초안 작성에 사용될 수 있습니다. 명령어의 실행 여부와 검증 환경은 각 가이드에 기재된 근거를 확인하세요. 적용 전 사용 중인 버전의 공식 문서를 확인하고, 오류는 이메일로 알려주세요. 이메일로 제보

주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)Redis 공식 문서 ↗

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.