Redis는 빠른 데이터 처리가 필요한 다양한 환경에서 사용되는 메모리 기반의 키-값 데이터 저장소다. 주로 캐시, 작업 큐, 세션 관리 등에서 활용되며, 데이터 보존 기능을 추가해 영구적 데이터 저장소로도 사용할 수 있다. 이 첫 번째 포스트에서는 Redis의 기본 개념과 주요 설정 파일인 redis.conf
에 대해 알아보자.
1. Redis의 기본 개념과 특징
Redis는 메모리(RAM)에 데이터를 저장해 높은 속도를 자랑하는 NoSQL 데이터베이스다. 이러한 특징 덕분에 다음과 같은 용도로 널리 쓰인다.
- 캐시(Cache): 웹 애플리케이션의 데이터 응답 속도를 높이기 위해 자주 호출되는 데이터를 Redis에 저장해 빠르게 불러온다.
- 세션 저장소(Session Storage): 사용자 세션 정보를 저장해 빠르게 액세스하고, 세션 데이터를 관리할 수 있다.
- 작업 큐(Queue): 비동기 작업 큐로, Celery와 같은 라이브러리와 함께 작업을 예약하고 빠르게 처리한다.

Redis의 주요 장점
- 속도: 메모리에 데이터를 저장해 빠르게 읽고 쓸 수 있어, 응답 지연을 최소화할 수 있다.
- 다양한 데이터 구조 지원: 단순한 키-값 저장소뿐만 아니라 리스트, 셋, 해시맵 등 다양한 구조를 지원한다.
- 확장성: 클러스터 구성을 통해 데이터 저장 용량과 처리 성능을 확장할 수 있다.
Redis의 휘발성과 데이터 보존 옵션
기본적으로 Redis는 휘발성 데이터를 다루는 구조로 설계되어 있어, 서버 재시작 시 메모리에 저장된 데이터가 사라질 수 있다. 이를 해결하기 위해 Redis는 두 가지 데이터 보존 옵션을 제공한다.
- RDB (Redis Database) 스냅샷: 일정 주기마다 메모리의 데이터를 디스크에 스냅샷 형태로 저장한다.
- AOF (Append-Only File): 모든 쓰기 작업을 디스크에 기록하여 서버 재시작 시 데이터를 복구할 수 있도록 한다.
Redis를 캐시 용도로만 사용한다면 데이터 휘발성에 대해 크게 신경 쓰지 않아도 되지만, 영구적인 데이터 보존이 필요하다면 이 옵션을 활용할 수 있다.
2. Redis 설정 파일 (redis.conf
)
Redis의 주요 설정 파일인 redis.conf
는 Redis 서버의 동작 방식을 세부적으로 설정할 수 있다. 일반적으로 /etc/redis/redis.conf
경로에 위치하며, Redis 설치 시 자동으로 생성된다.
redis.conf 파일의 주요 설정 항목

1) 네트워크 설정
- port: Redis 서버가 사용하는 포트를 설정한다. 기본 포트는 6379이다.
port 6379
- bind: Redis 서버가 수신할 IP 주소를 지정한다. 기본값은
127.0.0.1
로 로컬 연결만 허용한다.
bind 127.0.0.1
2) 보안 설정
- requirepass: Redis 서버에 접근하기 위한 비밀번호를 설정한다. 생략하면 비밀번호 없이 접속이 가능하다.
requirepass yourpassword
- protected-mode: Redis를 외부 접근으로부터 보호하는 모드로, 기본값은
yes
이며 로컬에서만 연결을 허용한다.
3) 메모리 관리
- maxmemory: Redis가 사용할 최대 메모리 용량을 설정한다. 제한이 없으면 시스템 메모리의 허용 한도까지 사용한다.
maxmemory 256mb
- maxmemory-policy: 메모리가 꽉 찼을 때 삭제할 데이터를 정하는 정책이다.
allkeys-lru
는 가장 오랫동안 사용되지 않은 데이터를 제거한다.
maxmemory-policy allkeys-lru
4) 데이터 보존 설정
- save: RDB 스냅샷을 주기적으로 생성하여 디스크에 저장한다. 예를 들어, 아래 설정은 60초마다 1000개 이상의 키가 변경될 경우 스냅샷을 생성한다.
save 60 1000
- appendonly: AOF 모드를 활성화하여 데이터 보존성을 높인다.
yes
로 설정하면 모든 쓰기 작업이 AOF 파일에 기록된다.
appendonly yes
5) 로깅과 디버깅 설정
- loglevel: 로그 수준을 설정한다.
notice
는 일반적인 메시지만 기록하며,debug
는 모든 디버그 정보를 기록한다.
loglevel notice
- logfile: 로그 파일의 경로를 지정한다. 기본값은
stdout
으로, 별도의 파일에 기록되지 않는다.
logfile /var/log/redis/redis.log
3. Redis 설정 변경 후 적용 방법
설정 파일에서 원하는 옵션을 수정한 후 Redis 서버를 재시작하여 설정을 적용할 수 있다.
sudo systemctl restart redis-server
설정 변경 후, Redis가 정상적으로 작동하는지 확인하려면 다음 명령어를 사용할 수 있다.
redis-cli ping
PONG
이 반환되면 Redis 서버가 정상 동작 중임을 의미한다.
마치며
Redis의 기본 개념과 설정 파일의 주요 항목을 알아보았다. Redis는 설정을 통해 성능과 보존성을 세부적으로 조절할 수 있으므로, 사용 목적에 맞춰 설정을 최적화하는 것이 중요하다. 다음 편에서는 Redis의 데이터 보존 옵션인 RDB와 AOF에 대해 깊이 알아보겠다.
Add a New Comment