-
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 ps2. 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 -ddocker-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