Skip to main content

Redis

데이터를 디스크가 아닌 메모리(RAM)에 저장하는 데이터 스토어입니다. 메모리에 저장하기 때문에 읽기/쓰기 속도가 매우 빠릅니다.

어디에 쓰이나요?

  • 캐시: 자주 조회하는 데이터를 메모리에 저장하여 응답 속도 향상
  • 세션 저장소: 로그인 상태, 사용자 세션 정보를 저장
  • 메시지 큐: 서비스 간 비동기 메시지 전달 (작업 대기열)
  • 실시간 데이터: 실시간 랭킹, 카운터, 속도 제한(Rate Limiting) 등
PostgreSQL 같은 디스크 기반 DB와 함께 사용되는 경우가 많습니다. 예를 들어, 자주 바뀌지 않는 데이터는 PostgreSQL에 저장하고 자주 조회하는 데이터는 Redis에 캐싱하여 성능을 높이는 방식입니다.

Docker Compose

docker-compose.yml
services:
  redis:
    image: redis:7-alpine
    container_name: redis
    restart: unless-stopped
    ports:
      - "6379:6379"
    command: redis-server --requirepass changeme
    volumes:
      - redis_data:/data

volumes:
  redis_data:

실행

docker compose up -d

접속 확인

docker exec -it redis redis-cli -a changeme
접속 후 동작을 확인합니다.
127.0.0.1:6379> ping
PONG

기본 정보

항목
포트6379
비밀번호changeme
데이터 저장 경로redis_data 볼륨

주요 설정 옵션

command 항목에 Redis 서버 옵션을 추가할 수 있습니다.
command: redis-server --requirepass changeme --maxmemory 256mb --maxmemory-policy allkeys-lru
옵션설명
--requirepass접속 비밀번호
--maxmemory최대 메모리 사용량
--maxmemory-policy메모리 초과 시 정책 (allkeys-lru, volatile-lru 등)
--appendonly yesAOF 영속성 활성화

라이선스

구분내용
라이선스RSALv2 / SSPL 듀얼 (Redis 7.4+), BSD 3-Clause (7.2 이하)
개인 사용자유롭게 사용 가능
상업적 사용사내 사용은 자유, Redis를 관리형 서비스(DBaaS)로 제공하는 것은 불가
Redis 7.4부터 라이선스가 변경되었습니다. 사내 캐시, 세션 저장소 등 내부 용도로 사용하는 것은 제한이 없습니다. 제한되는 것은 Redis 자체를 상품화하여 클라우드 서비스로 판매하는 경우입니다.

참고