FastAPI でキャッシュを使用して応答を高速化する方法
はじめに:
現代の Web 開発では、パフォーマンスが重要な関心事です。アプリケーションが顧客のリクエストに迅速に対応できない場合、ユーザー エクスペリエンスの低下やユーザーの離脱につながる可能性があります。キャッシュの使用は、Web アプリケーションのパフォーマンスを向上させる一般的な方法の 1 つです。この記事では、キャッシュを使用して FastAPI フレームワークの応答速度を高速化する方法を検討し、対応するコード例を示します。
1. キャッシュとは何ですか?
キャッシュは、頻繁にアクセスされるデータをメモリに保存するテクノロジーです。データベースやその他の外部リソースへのアクセス数を削減できるため、顧客のリクエストへの対応が迅速化されます。もちろん、キャッシュを同時に使用する場合には、いくつかの制限と注意事項があります。
2. FastAPI でのキャッシュの使用
FastAPI は、標準の Python 型ヒントに基づいた最新の高速 (高パフォーマンス) Web フレームワークであり、その最下層は Starlette フレームワークを使用して構築されています。 FastAPI でキャッシュを使用するには、Starlette フレームワークのキャッシュ機能を使用する必要があります。以下では、Starlette キャッシュを使用して FastAPI の応答速度を最適化する方法を示します。
まず、Starlette とキャッシュ ライブラリ cachetools
:
pip install starlette pip install cachetools
次に、必要なライブラリを FastAPI アプリケーションに導入します:
from fastapi import FastAPI from starlette.responses import JSONResponse from cachetools import cached, TTLCache
次に、FastAPI アプリケーション インスタンスを定義できます。
app = FastAPI()
次に、キャッシュするデータを保存するキャッシュを定義できます。この例では、TTLCache をキャッシュとして使用し、「Time to Live」(TTL) ポリシーに従って期限切れのデータを自動的にクリアします。
cache = TTLCache(maxsize=100, ttl=300)
次に、キャッシュする必要があるルート処理関数を定義できます。キャッシュには @cached(cache)
デコレータを使用します。 上記のコードの
@app.get("/api/data") @cached(cache) async def get_data(): # 从数据库或其他外部资源获取数据的逻辑 data = await get_data_from_database() return JSONResponse(data)
get_data_from_database()
は、データベースまたはその他の外部からデータを取得するために使用される関数です。リソースの非同期関数。
最後に、FastAPI アプリケーションを実行して、キャッシュ効果をテストできます。 /api/data
に初めてアクセスすると、get_data()
関数がデータベースからデータを取得し、キャッシュにキャッシュします。後続のアクセスでは、データベースに再度アクセスすることなく、キャッシュから直接データがフェッチされます。
3. キャッシュの制限と注意事項
キャッシュを使用すると応答速度が大幅に向上しますが、次の点にも注意する必要があります:
結論:
この記事では、FastAPI でキャッシュを使用して応答を高速化する方法を検討しました。キャッシュの実装には、Starlette フレームワークのキャッシュ機能と、cachetools ライブラリを使用しました。キャッシュを使用するとパフォーマンスが向上しますが、キャッシュの一貫性、戦略、容量などの問題にも注意する必要があります。この記事が FastAPI アプリケーションのパフォーマンスの最適化に役立つことを願っています。
参考資料:
以上がFastAPI でキャッシュを使用して応答を高速化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。