캐싱 전략(Caching Strategy)은 자주 사용되는 데이터를 빠른 저장소에 임시 보관해 응답 속도와 시스템 부하를 줄이는 다양한 접근 방법이다.
주요 캐싱 패턴
python
def get_user(user_id):
cached = redis.get(f"user:{user_id}")
if cached:
return json.loads(cached) # 캐시 히트
# 캐시 미스: DB 조회 후 캐시 저장
user = db.query("SELECT * FROM users WHERE id=%s", user_id)
redis.setex(f"user:{user_id}", 300, json.dumps(user))
return user
Write-Through
python
def update_user(user_id, data):
db.update(user_id, data) # DB 먼저
redis.set(f"user:{user_id}", data) # 캐시도 동시 업데이트
# DB와 캐시 항상 동기화, 쓰기 느림
python
def update_user(user_id, data):
redis.set(f"user:{user_id}", data) # 캐시 먼저
queue.put(('update_db', user_id, data)) # DB는 비동기
# 쓰기 빠름, 장애 시 데이터 손실 위험
CDN 캐싱 vs 애플리케이션 캐싱
관련 개념
참고문헌