[python] FastAPI에서 인메모리 캐싱 사용 방법
FastAPI는 인메모리 캐싱을 통해 응용 프로그램의 성능을 향상시킬 수 있는 기능을 제공합니다. 인메모리 캐싱을 사용하면 빠른 응답속도를 얻을 수 있으며, 중복된 요청을 처리할 필요가 없어서 서버 부하를 줄일 수 있습니다.
FastAPI에서의 인메모리 캐시 라이브러리
FastAPI에서는 cachetools
라이브러리를 사용하여 인메모리 캐싱을 수행할 수 있습니다. cachetools
라이브러리는 데이터를 캐싱하고 지정된 시간 동안 캐시된 데이터를 유지하는 기능을 제공합니다.
FastAPI 앱에 인메모리 캐싱 적용하기
다음은 FastAPI 앱에서 cachetools
를 사용하여 인메모리 캐싱을 적용하는 간단한 예제입니다.
from fastapi import FastAPI
from cachetools import cached, TTLCache
app = FastAPI()
cache = TTLCache(maxsize=100, ttl=600)
@cached(cache)
def get_data_from_db(item_id: int):
# 여기에 데이터베이스에서 데이터를 가져오는 코드를 입력합니다.
return f"데이터베이스로부터 얻은 데이터: {item_id}"
@app.get("/data/{item_id}")
def read_data(item_id: int):
return get_data_from_db(item_id)
위의 코드에서 TTLCache
를 사용하여 최대 크기와 만료 시간을 설정하고, @cached(cache)
를 사용하여 함수의 결과를 캐시합니다. 이렇게 하면 get_data_from_db
함수의 반환값이 캐시되어 데이터베이스에서 동일한 item_id
에 대해 중복 요청을 처리할 필요가 없어집니다.
마치며
FastAPI에서 인메모리 캐싱을 사용하여 성능을 향상시킬 수 있습니다. 다양한 종류의 캐시 제공 라이브러리가 있으므로 사용 사례에 맞는 최적의 캐시 전략을 선택하는 것이 중요합니다.