데이터베이스/Redis

Cache Aside, Write Around

정재익 2025. 8. 9. 16:10

데이터를 캐싱할 때 사용하는 전략

 

Cache Aside

Look Aside 또는 Lazy Loading이라고도 부른다

 

1. 무언가를 조회할 때 캐시에 먼저 요청보내고 없으면 DB에 요청보낸다

2. 그리고 DB에서 데이터를 응답한 뒤에 레디스에 데이터를 저장하는 전략

 

캐시에 데이터가있으면 Cache Hit

캐시에 데이터가없으면 Cache Miss

 

Write Around

cache Aside 전략과 자주 같이 활용 됨

Cache Aside가 데이터 조회에 대한 전략이면 Wirte Around는 저장, 수정, 삭제에 대한 전략

 

간단하다 저장할 때 레디스에 저장하지않고 데이터베이스에만 저장하는 전략이다

 

Cache Aside와 Write Around를 같이 쓸 때 한계점

1. 캐시된 데이터와 DB 데이터가 일치하지 않을 수 있다 - 데이터 일관성 보장 X

 

왜? write around 전략은 db의 데이터만 수정하기 때문에 기존에 저장된 레디스의 값과 다를 수 있다.

 

2. 캐시에 저장할 수 있는 공간에 작다 - 이건 Redis자체의 문제점 이기도 함

 

 

극복방법

데이터를 수정할 때 동시에 업데이트 시키면 성능적으로 느려진다

그래서 캐시를 적용할 데이터를 선별해야함

1. 자주 조회되는 데이터

2. 잘 변하지 않는 데이터

3. 실시간으로 정확하게 일치하지 않아도 되는 데이터

 

TTL기능을 활용하여 적절한 주기로 데이터를 동기화시켜야 함

일정시간이 지나면 데이터가 캐시에서 삭제 됨. 특정 사용자가 조회하는 순간 Cache Miss가 발생되고 DB에서 새로 조회해서 레디스에 데이터를 넣는다 즉 데이터가 새롭게 갱신되는 효과가 있다.

 

캐시에 저장할 수 있는 공간이 비교적 작은것도 TTL 통해 보완가능