Redis 데이터 관리 가이드

Redis를 활용한 고성능 관심종목 데이터 관리 및 스마트 증분 업데이트 시스템입니다.


스마트 증분 업데이트 시스템

관심종목 데이터를 효율적으로 관리하는 지능형 업데이트 시스템입니다.

업데이트 모드별 특징

모드설명사용 시점처리 시간네트워크 사용량
smart자동 최적화 선택일반적 사용2-5분최소
incremental최근 N일만 업데이트정기 업데이트3-8분중간
full전체 재로딩초기 설정 / 문제 해결20-30분최대

실행 명령어

# 스마트 모드 (추천)
docker compose exec airflow-scheduler python /opt/airflow/scripts/load_watchlist_to_redis.py --mode smart
 
# 증분 업데이트 (최근 5일)
docker compose exec airflow-scheduler python /opt/airflow/scripts/load_watchlist_to_redis.py --mode incremental --days 5
 
# 전체 재로딩 (60일)
docker compose exec airflow-scheduler python /opt/airflow/scripts/load_watchlist_to_redis.py --mode full --days 60
 
# 강제 전체 재로딩
docker compose exec airflow-scheduler python /opt/airflow/scripts/load_watchlist_to_redis.py --mode smart --force

Airflow DAG(redis_watchlist_sync)으로 매일 오전 1시 자동 실행하도록 스케줄링되어 있습니다.


지능형 판단 로직

스마트 모드 동작 방식

graph TD
    A[스마트 모드 시작] --> B{마지막 업데이트 확인}
    B -->|처음 실행| C[전체 로딩 30일]
    B -->|당일 실행됨| D[신규 종목만 확인]
    B -->|1-6일 경과| E[증분 업데이트]
    B -->|7일+ 경과| F[전체 재로딩]

    E --> G{변경 사항 분석}
    G --> H[신규 종목: 30일 전체]
    G --> I[제거 종목: Redis 삭제]
    G --> J[기존 종목: 최신 데이터만]

    C --> K[완료 & 상태 저장]
    D --> K
    H --> K
    I --> K
    J --> K
    F --> K

변경 사항 자동 분석

케이스처리 방식
신규 종목 감지30일 전체 히스토리컬 데이터 로딩
제거 종목Redis에서 해당 데이터 자동 삭제
기존 종목마지막 업데이트 이후 신규 일별 데이터만 추가, 최대 30일 유지

Redis 데이터 구조

관심종목 데이터

watchlist_data:{symbol}
  └─ historical_data: [ { date, open, high, low, close, volume }, ... ]  (최대 30일)
  └─ last_updated: timestamp
  └─ trigger_price: 관심종목 등록일 종가 (장기 수익률 기준)

실시간 신호 데이터

signal:{symbol}
  └─ signal_type: bollinger | rsi | macd | volume
  └─ trigger_price: 신호 발생 시점 가격 (동적값)
  └─ timestamp: 신호 발생 시각

실시간 가격 데이터

price:{symbol}
  └─ current_price, change_rate, volume
  └─ rsi, macd, bollinger_upper, bollinger_lower
  └─ TTL: 60초