캐시는 데이터베이스나 원본 데이터 소스보다 빠른 접근 속도를 제공하는 임시 저장소로, 성능 최적화를 위해 자주 사용됩니다. 캐시를 효과적으로 활용하기 위해서는 데이터를 언제, 어떻게 캐시에 저장하고, 언제 캐시에서 데이터를 읽어올지에 대한 전략이 필요합니다. 이러한 전략은 캐시 읽기 전략과 캐시 쓰기 전략으로 구분됩니다.
def get_data(key):
value = cache.get(key)
if not value:
value = database.get(key)
cache.set(key, value)
return valuedef write_data(key, value):
cache.set(key, value)
database.set(key, value)# 캐시가 제공하는 방식으로, 캐시에 미스가 발생하면 원본 데이터 소스에서 자동으로 데이터를 가져옴
value = cache.read_through(key)def write_data(key, value):
cache.set(key, value)
# 데이터베이스에 비동기적으로 쓰기
async_database_write(key, value)def write_data(key, value):
database.set(key, value)
# 캐시에는 쓰지 않음캐시의 데이터가 더 이상 유효하지 않으면 이를 무효화해야 합니다. 무효화 전략에는 다음과 같은 방법들이 있습니다:
Cache-Aside, Read-Through, Write-Through 등이 있습니다.Write-Through, Write-Around, Write-Behind가 있습니다.