FastAPI中怎么實(shí)現(xiàn)緩存

小億
334
2024-05-10 16:48:56

在FastAPI中實(shí)現(xiàn)緩存可以使用第三方庫(kù),比如cachetoolsaiocache。以下是使用cachetools實(shí)現(xiàn)緩存的示例代碼:

from fastapi import FastAPI
from cachetools import TTLCache

app = FastAPI()

# 創(chuàng)建一個(gè)TTLCache緩存實(shí)例,設(shè)置緩存過(guò)期時(shí)間為60秒
cache = TTLCache(maxsize=100, ttl=60)

# 定義一個(gè)路由,使用緩存
@app.get("/cached")
def cached_response():
    # 檢查緩存中是否有數(shù)據(jù)
    if "cached_response" in cache:
        return cache["cached_response"]
    
    # 如果緩存中沒(méi)有數(shù)據(jù),則執(zhí)行這段邏輯
    response_data = {"message": "This is a cached response"}
    
    # 將數(shù)據(jù)存入緩存
    cache["cached_response"] = response_data
    
    return response_data

在上面的示例代碼中,我們首先導(dǎo)入TTLCache類,然后創(chuàng)建了一個(gè)TTLCache實(shí)例作為緩存。在路由處理函數(shù)中,我們首先檢查緩存中是否存在所需的數(shù)據(jù),如果存在則直接返回緩存中的數(shù)據(jù),否則執(zhí)行相應(yīng)的邏輯并將數(shù)據(jù)存入緩存中。

0