ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redis: 인메모리 데이터베이스
    Software engineer/DB 2024. 10. 26. 01:05

    Redis logo

     

    Redis란?

    Redis는 Remote Dictionary Server의 약자로, 메모리에서 데이터를 관리하는 오픈소스 NoSQL 데이터베이스입니다. Redis는 데이터를 디스크에 저장하지 않고 메모리(RAM)에 저장하여 매우 빠른 데이터 읽기 및 쓰기 속도를 제공합니다.

     

    특징

    • 인메모리 데이터베이스: 데이터를 메모리에 저장하므로 빠른 속도로 읽기, 쓰기가 가능
    • 다양한 데이터 타입 지원: 문자열(String), 리스트(List), 세트(Set), 해시(Hash), 정렬된 세트(Sorted Set) 등
    • Persistence(영속성): 메모리에 저장된 데이터를 주기적으로 디스크에 백업하여 영구성을 제공
    • 분산 처리 지원: Redis는 클러스터링을 통해 대규모 데이터 처리도 가능

     

     

    Redis 설치하기

    이번에는 Docker를 사용해 Redis를 설치하고 실습하는 방법을 알아보겠습니다. Docker는 컨테이너 환경에서 애플리케이션을 실행할 수 있도록 해주어 Redis 설치와 실행을 간편하게 해줍니다.

     

     

    1. Docker를 통한 Redis 설치

    우선 Docker가 설치되어 있는지 확인합니다. Docker가 설치되지 않았다면 Docker 공식 홈페이지에서 설치할 수 있습니다.

     

    Redis 컨테이너 실행

    Docker에서 Redis를 설치하고 실행하기 위해 docker run 명령어를 사용합니다.

    # Redis 최신 버전 이미지 다운로드 및 컨테이너 실행
    docker run -d --name redis-container -p 6379:6379 redis

     

    위 명령어는 다음을 수행합니다.

    • -d: 백그라운드 모드에서 Redis 실행
    • --name redis-container: 컨테이너 이름을 redis-container로 지정
    • -p 6379:6379: 로컬 포트 6379와 Redis 기본 포트 6379를 연결하여 호스트에서 접근 가능하게 함
    • redis: Redis 최신 버전 이미지를 사용

     

    컨테이너가 정상적으로 실행되었는지 확인하려면 다음 명령어를 사용해 상태를 확인할 수 있습니다.

    docker ps

     

     

    2. Redis 클라이언트 접속

    Redis 컨테이너가 실행되었다면, docker exec 명령어로 컨테이너 내부의 Redis CLI에 접근할 수 있습니다.

    # Redis CLI 접속
    docker exec -it redis-container redis-cli

     

    이제 Redis CLI에서 Redis 명령어를 입력해 데이터를 저장하고 조회할 수 있습니다.

    # 데이터 저장
    SET name "Alice"
    
    # 데이터 조회
    GET name  # 출력: "Alice"

     

     

    3. Docker Compose를 사용한 Redis 설정

    Docker Compose를 사용하면 Redis와 같은 서비스를 더 쉽게 설정할 수 있습니다. docker-compose.yml 파일을 생성하여 Redis 환경을 정의할 수 있습니다.

    # docker-compose.yml
    version: '3'
    
    services:
      redis:
        image: redis:latest
        container_name: redis-compose-container
        ports:
          - "6379:6379"

     

    docker-compose.yml 파일을 생성한 후 다음 명령어로 Redis를 실행합니다.

    # Docker Compose로 Redis 실행
    docker-compose up -d

     

    docker-compose up -d 명령어로 Redis가 백그라운드에서 실행되며, docker-compose down으로 컨테이너를 종료할 수 있습니다.

     

     

    4. Redis의 기본 명령어 실습

    Redis CLI에 접속한 후, 앞서 소개한 문자열 저장, 리스트해시 데이터 저장 등의 명령어를 사용하여 간단한 실습을 진행할 수 있습니다.

     

    문자열 데이터 저장 및 조회

    SET name "Alice"
    GET name  # 출력: "Alice"

     

    리스트 데이터 저장 및 조회

    LPUSH mylist "apple"
    LRANGE mylist 0 -1  # 출력: ["apple"]

     

    해시 데이터 저장 및 조회

    HSET user:1000 name "John"
    HGETALL user:1000  # 출력: {"name": "John"}

     

     

    5. Redis 컨테이너 종료 및 삭제

    실습이 끝나면 Redis 컨테이너를 종료하거나 삭제할 수 있습니다.

     

    컨테이너 종료

    docker stop redis-compose-container

     

    컨테이너 삭제

    docker rm redis-compose-container

     

     

     

    실제 업무에서 Redis 활용 방안

    Redis는 빠른 데이터 처리 속도와 다양한 데이터 구조 지원 덕분에 여러 실무 환경에서 유용하게 사용할 수 있습니다. 다음은 실제 업무에서 Redis를 효과적으로 활용할 수 있는 주요 방안입니다.

     

    1. 캐시(Cache)

    Redis는 데이터베이스와 애플리케이션 간의 중간 저장소로 사용되어 데이터베이스 부하를 줄이고 애플리케이션의 응답 속도를 높입니다. 자주 요청되는 데이터를 Redis에 캐싱하면 데이터베이스로의 직접적인 접근을 줄여 성능을 최적화할 수 있습니다.

    • 활용 예: 자주 조회되는 사용자 정보, 제품 목록, 인기 콘텐츠 등을 캐싱하여 빠르게 제공.

     

    2. 실시간 분석 및 대시보드

    Redis는 실시간 데이터 분석과 빠른 읽기 속도가 필요한 데이터 대시보드에 유리합니다. Redis에 실시간으로 집계된 데이터를 저장하면, 별도의 지연 없이 최신 상태를 반영한 대시보드를 제공할 수 있습니다.

    • 활용 예: 웹사이트 방문자 수, 실시간 거래 수, 사용자 활동 모니터링 등 실시간 데이터 대시보드 구축.

     

    3. 메시지 브로커(Message Broker)

    Redis는 pub/sub 기능을 통해 메시지 큐나 이벤트 처리 시스템에서 메시지 브로커로 사용할 수 있습니다. 여러 서비스 간에 실시간으로 메시지를 전달하거나 이벤트를 처리하는 데 유용합니다.

    • 활용 예: 실시간 알림 시스템, 채팅 애플리케이션, 이벤트 기반 시스템에서 Redis를 사용해 빠르고 안정적인 메시지 전달.

     

    4. 작업 큐(Task Queue)

    Redis는 비동기 작업 큐로 활용될 수 있어, 긴 시간이 소요되는 작업을 Redis에 큐잉하고, 순차적으로 처리를 진행할 수 있습니다. 이는 비동기 처리가 필요한 마이크로서비스 아키텍처에서 유용합니다.

    • 활용 예: 이미지나 영상 처리, 이메일 발송 작업을 Redis 큐에 저장하여 백그라운드에서 순차적으로 처리.

     

    'Software engineer > DB' 카테고리의 다른 글

    PostgreSQL 시간 관련 함수들  (0) 2025.07.11
Designed by Tistory.