본문으로 건너뛰기
AIDevOps
  • Learn
  • Learning Paths
  • Practice
  • Open Source
  • Books
  • Engineering

    AI DevOpsAI 서비스 개발·운영 전체 지도LLMOpsLLM 배포·평가·관측실전 프로젝트AI Agent 프로젝트 실습

    Knowledge

    Docs기술 문서 모음Blog엔지니어링 아티클Plogger개발 기록 피드

    Validate

    Certification3단계 역량 인증 · 준비 중
AI Models
LlamaMistralGemmaDeepSeekQwen
🧱 인프라
인프라 입문 & 로드맵NginxRedis
🤖 AI 실전 개발
AI 실전 입문 & 로드맵Hugging FaceLangChainLlamaIndexLLMOps|LangGraphMCPMulti-AgentAgent Evaluation
🧠 AI Core
AI 입문 & 로드맵ML FundamentalsLLM Fundamentals|Python AIC++|PyTorchTensorFlowJAX
🧠 AI Agent 개발
금융 AI AgentLLM API 서버주식 투자 AgentAIOps AI Agent교육 AI Agent코딩 AI Agent
🌱 Spring Cloud
Spring 입문 & 로드맵Spring Cloud GatewaySpring BootJava|Spring AISpring SecuritySpring BatchSpring JPA
🐳 DevOps
DevOps 입문 & 로드맵LinuxDockerCI/CD|Kubernetes 기본K8s 심화/실무PrometheusGrafana
☁️ 클라우드
클라우드 입문 & 로드맵AWSGCPAzureNCPCloudflare
🎨 Frontend
Frontend 입문 & 로드맵JavaScriptTypeScript|ReactNext.js|VueNuxt
📱 Mobile
Mobile 입문 & 로드맵KotlinAndroidFlutter
⚙️ Backend
Backend 입문 & 로드맵Python 기본FastAPIDjangoFlask|CGoGinNode.js
💾 Database
DB 입문 & 로드맵공통 SQLOracleMySQLPostgreSQL|MongoDB벡터 DB
🧪 검증
k6JMeternGrinder
AIDevOps

Engineering AI. From Code to Production.
AI와 AI Agent를 개발하고 운영하기 위한 엔지니어링 학습 플랫폼

Learn

  • 전체 가이드
  • Learning Paths
  • Practice
  • Books

Resources

  • AI DevOps
  • LLMOps
  • 실전 프로젝트
  • Docs
  • Blog
  • Plogger
  • Open Source
  • Certification (준비 중)

Start Here

  • AI Core 로드맵
  • AI 실전 개발 로드맵
  • Spring Cloud 로드맵
  • DevOps 로드맵
  • 인프라 로드맵

 

  • 클라우드 로드맵
  • Frontend 로드맵
  • Mobile 로드맵
  • Backend 로드맵
  • Database 로드맵
© 2026 AI DevOps Korea. All rights reserved.
이용약관개인정보처리방침Sitemaptestforge.kr
  1. Home
  2. Learn
  3. 인프라
  4. Redis
인메모리 캐시 & 데이터 구조 스토어 가이드

🔴 Redis 완전 가이드

Visitors

Redis로 캐싱, 세션 저장, Pub/Sub 메시징을 구현하세요. 핵심 데이터 타입부터 캐싱 패턴, 영속성, 언어별 클라이언트 연동까지 정리했습니다.

  • Intermediate · 중급
  • 업데이트 2026.09.19
  • 약 4분 읽기
  • 6개 섹션
  • 예제 코드 6개
🔴
API 응답 캐싱세션 저장소Pub/Sub 메시징순위표(Sorted Set) 구현

목차

0 / 8
  1. 가이드 사용법
  2. 구조 다이어그램
  3. 설치
  4. 핵심 데이터 타입
  5. 캐싱 패턴
  6. Pub/Sub 메시징
  7. 영속성(RDB/AOF)
  8. 클라이언트 연동
목차 8개 섹션
  1. 가이드 사용법
  2. 구조 다이어그램
  3. 설치
  4. 핵심 데이터 타입
  5. 캐싱 패턴
  6. Pub/Sub 메시징
  7. 영속성(RDB/AOF)
  8. 클라이언트 연동

가이드 사용법

읽는 방향

Redis를 실무 흐름으로 이해하기

Redis로 캐싱, 세션 저장, Pub/Sub 메시징을 구현하세요. 핵심 데이터 타입부터 캐싱 패턴, 영속성, 언어별 클라이언트 연동까지 정리했습니다. 이 가이드는 개념을 나열하기보다, 실제 프로젝트에서 판단해야 하는 순서대로 내용을 따라갈 수 있게 구성했습니다.

핵심 관점

인프라 / 운영

설치 명령을 외우기보다 트래픽, 런타임, 관측, 장애 대응이 어떤 순서로 이어지는지 파악합니다.

API 응답 캐싱세션 저장소Pub/Sub 메시징순위표(Sorted Set) 구현

구조 다이어그램

글로 읽은 내용을 머릿속에 오래 남기려면 먼저 흐름을 그림으로 잡는 편이 좋습니다. 아래 두 그림은 Redis를 학습할 때 계속 되돌아볼 수 있는 기준 지도입니다.

학습 흐름

다이어그램 렌더링 중…

아키텍처 관점

다이어그램 렌더링 중…

설치

Redis를 처음 펼칠 때는 세부 명령보다 큰 그림이 먼저입니다. 이 섹션에서는 앞으로 배울 개념들이 어떤 문제를 풀기 위해 등장했는지부터 잡아봅니다.

Redis는 로컬 개발 환경에서는 Docker 컨테이너로 가장 간단히 띄울 수 있고, 운영 서버에서는 패키지 매니저로 설치해 systemd/brew services로 상시 구동합니다. redis-cli ping이 PONG을 반환하면 서버가 정상적으로 응답하고 있다는 뜻입니다.
BASH
# Docker (가장 간단)
docker run -d -p 6379:6379 redis:7-alpine

# macOS
brew install redis && brew services start redis

# Ubuntu/Debian
sudo apt install -y redis-server

redis-cli ping   # PONG이 나오면 정상 동작

핵심 데이터 타입

여기서는 핵심 데이터 타입을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

Redis는 단순 key-value가 아니라 여러 데이터 구조를 기본 지원합니다. 문제 상황에 맞는 타입을 고르는 것이 Redis를 잘 쓰는 핵심입니다.
BASH
SET session:abc123 "user-42" EX 3600   # 1시간 뒤 자동 만료
GET session:abc123
TTL session:abc123                     # 남은 만료 시간(초) 확인
DEL session:abc123
타입명령어 예시쓰임
StringSET user:1:name "Kim"단순 캐시 값, 카운터(INCR)
HashHSET user:1 name Kim age 30객체 하나를 필드 단위로 저장
ListLPUSH queue:jobs job1작업 큐, 최근 항목 목록
SetSADD tags:post:1 ai devops중복 없는 태그, 교집합/합집합 연산
Sorted SetZADD leaderboard 100 user1점수 기반 순위표, 랭킹

캐싱 패턴

여기서는 캐싱 패턴을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

가장 흔한 패턴은 Cache-Aside입니다. 애플리케이션이 캐시를 먼저 확인하고, 없으면(cache miss) DB를 조회해 캐시에 채워 넣습니다.
다이어그램 렌더링 중…
cache_aside.pyPYTHON
import redis, json

r = redis.Redis(host="localhost", port=6379, decode_responses=True)

def get_user(user_id: str) -> dict:
    cache_key = f"user:{user_id}"
    cached = r.get(cache_key)
    if cached:
        return json.loads(cached)          # cache hit

    user = fetch_user_from_db(user_id)      # cache miss → DB 조회
    r.setex(cache_key, 300, json.dumps(user))  # 5분 TTL로 캐시에 저장
    return user

def update_user(user_id: str, data: dict):
    save_user_to_db(user_id, data)
    r.delete(f"user:{user_id}")             # 갱신 시 캐시 무효화(invalidation)

Tip

TTL을 너무 길게 잡으면 오래된 데이터가 오래 노출되고, 너무 짧게 잡으면 캐시 효과가 없습니다 — 데이터 변경 빈도에 맞춰 조정하세요.

Pub/Sub 메시징

여기서는 Pub/Sub 메시징을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

간단한 실시간 알림이나 서비스 간 이벤트 전파에는 Redis의 Pub/Sub을 가볍게 쓸 수 있습니다. 다만 메시지가 영속되지 않으므로(구독 중이 아니면 유실) 안정적인 큐가 필요하면 별도 메시지 브로커를 고려하세요.
PYTHON
# 발행(publisher)
r.publish("notifications", "새 주문이 도착했습니다")

# 구독(subscriber)
pubsub = r.pubsub()
pubsub.subscribe("notifications")
for message in pubsub.listen():
    if message["type"] == "message":
        print("수신:", message["data"])

영속성(RDB/AOF)

영속성(RDB/AOF)은 선택지가 갈리는 지점입니다. 표를 기준으로 각 방법의 쓰임새와 운영상의 차이를 비교해두면 이후 판단이 훨씬 쉬워집니다.

Redis는 원래 메모리 기반이라 재시작하면 데이터가 날아가지만, 두 가지 방식으로 디스크에 데이터를 남겨 복구할 수 있습니다. 어느 쪽을 쓸지는 "데이터 유실을 어디까지 감수할 수 있는가"에 달려 있습니다.
방식동작특징
RDB (스냅샷)주기적으로 메모리 전체를 디스크에 저장재시작이 빠르지만, 마지막 스냅샷 이후 데이터는 유실될 수 있음
AOF (Append Only File)모든 쓰기 명령을 로그처럼 순차 기록데이터 유실 위험이 적지만 파일이 커지고 재시작이 느림

Tip

순수 캐시 용도라면 영속성을 꺼도 무방하지만, 세션·큐처럼 데이터 유실이 문제되는 용도라면 AOF를 켜거나 RDB+AOF를 함께 사용하세요.

클라이언트 연동

여기서는 클라이언트 연동을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

언어별 공식·인기 클라이언트 라이브러리를 쓰면 Redis 프로토콜을 직접 다룰 필요 없이 익숙한 함수 호출만으로 명령을 실행할 수 있습니다. ioredis는 Node.js 생태계에서 재연결, 클러스터, Pub/Sub까지 폭넓게 지원해 널리 쓰입니다.
BASH
pip install redis        # Python
npm install ioredis       # Node.js
redis-client.jsJAVASCRIPT
import Redis from "ioredis";
const redis = new Redis({ host: "localhost", port: 6379 });

await redis.set("key", "value", "EX", 60);
const value = await redis.get("key");

Tip

다음 단계로 docker 가이드에서 Redis를 다른 서비스와 함께 docker-compose로 묶어보거나, fastapi/nodejs 가이드에서 실제 API 서버에 캐싱 레이어로 연동해보세요.

← 이전 가이드Nginx