-
Redis는 스토리지 공간 사용 용도DevOps 2025. 3. 23. 13:36728x90
Redis는 기본적으로 인메모리(in-memory) 데이터베이스지만, 스토리지(디스크 공간)도 중요한 역할을 합니다. 아래에 Redis가 스토리지를 사용하는 주요 용도를 정리해볼게요.
Redis가 스토리지를 사용하는 주요 용도
1. 지속성(Persistence) – 데이터 저장
Redis는 메모리에서 동작하지만, 장애 발생 시 데이터를 복구할 수 있도록 디스크에 데이터를 저장할 수 있는 Persistence(지속성) 기능을 제공합니다.
🔸 RDB (Redis Database Snapshot)
- 일정 주기마다 메모리 상태 전체를 디스크에 저장 (스냅샷)
- 저장 위치: dump.rdb
- 적은 디스크 I/O, 빠른 복구 속도
- 단점: 마지막 스냅샷 이후의 데이터는 유실 가능
🔸 AOF (Append Only File)
- 모든 쓰기 명령을 append 방식으로 기록
- 저장 위치: appendonly.aof
- 더 높은 데이터 안전성 (모든 변경 사항 기록)
- 주기적으로 rewrite 가능 (용량 감소 및 성능 유지)
✅ AOF + RDB 병행 사용도 가능
- AOF는 장애 복구에 사용, RDB는 빠른 시작을 위해 사용
2. 클러스터 구성 정보 저장
- Redis Cluster 모드에서 클러스터 상태 정보를 저장하는 파일이 있음
- 예: nodes.conf
- Redis 재시작 시 클러스터 구성 정보를 이 파일에서 로드함
- 일반적으로 Redis 인스턴스가 실행되는 디렉토리에 저장
3. 로그 파일
- 서버 로그를 파일로 저장 가능 (redis.conf에서 설정)
- 예: logfile /var/log/redis/redis.log
- 디버깅, 모니터링, 장애 분석에 활용
4. Module 관련 저장소 (Optional)
- Redis 모듈(예: RedisJSON, RedisSearch 등)이 디스크에 별도의 인덱스나 메타데이터를 저장할 수도 있음 (모듈마다 다름)
⚠️ 주의사항: 디스크 공간이 부족할 경우
- AOF 파일이 너무 커지면 디스크가 가득 차 Redis가 동작 중단할 수 있음
- RDB, AOF 쓰기 실패 시 데이터 유실 위험 있음
- /var/log 공간 부족으로 로그 저장 실패도 발생 가능
💡 운영 팁
- AOF 파일은 주기적으로 BGREWRITEAOF로 정리
- RDB 스냅샷 주기 설정 적절히 조정
- 디스크 사용량 모니터링 필수 (Prometheus + Grafana 추천)
- 디스크 IOPS 성능도 고려 (특히 AOF 사용 시)
요약하면 Redis는 디스크를 데이터 영속화, 클러스터 정보 저장, 로그 기록 등의 목적으로 사용합니다. 메모리 기반이지만 안정성과 복구를 위해 스토리지가 필수적이에요.
🧾 1. 쓰기 명령(Write Commands)의 예
쓰기 명령이란 Redis의 데이터를 변경하는 모든 명령어를 말합니다. 대표적인 것들은 아래와 같아요:
🔹 문자열 관련
- SET key value
- SETEX key seconds value
- APPEND key value
- INCR key / DECR key
🔹 리스트 관련
- LPUSH key value
- RPUSH key value
- LPOP key / RPOP
🔹 해시(Hash) 관련
- HSET key field value
- HDEL key field
🔹 집합(Set) 관련
- SADD key member
- SREM key member
🔹 정렬된 집합(Sorted Set)
- ZADD key score member
- ZREM key member
🔹 기타
- DEL key
- EXPIRE key seconds
- FLUSHDB / FLUSHALL (주의: 전체 삭제)
➡️ 이런 명령들이 AOF 파일에 순차적으로 기록됩니다.
AOF는 Redis가 꺼졌다가 다시 켜질 때, 이 명령들을 순서대로 재실행해서 데이터를 복원합니다.728x90'DevOps' 카테고리의 다른 글
ElasticSearch vs. OpenSearch (0) 2025.03.23 HA Proxy와 Nginx 비교 (0) 2025.03.23 Redis 클러스터를 구성하는 방법과 운영 시 주의점 (0) 2025.03.22 RAID (Redundant Array of Independent/Inexpensive Disks) (0) 2025.03.22 GitHub의 Hubot이란 (0) 2025.03.21