FastAPI でキャッシュを使用して応答を高速化する方法
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 公式ドキュメント: https://fastapi.tiangolo.com/
- Starlette 公式ドキュメント: https://www.starlette. io/
- cachetools ライブラリのドキュメント: https://cachetools.readthedocs.io/
以上がFastAPI でキャッシュを使用して応答を高速化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ブラウザはビデオをどのフォルダにキャッシュしますか? 私たちは毎日インターネット ブラウザを使用するときに、YouTube でミュージック ビデオを視聴したり、Netflix で映画を視聴したりするなど、さまざまなオンライン ビデオを視聴することがよくあります。これらのビデオは読み込みプロセス中にブラウザによってキャッシュされるため、将来再び再生するときにすぐに読み込むことができます。そこで問題は、これらのキャッシュされたビデオが実際にどのフォルダーに保存されるのかということです。ブラウザーが異なれば、キャッシュされたビデオ フォルダーは異なる場所に保存されます。以下に、いくつかの一般的なブラウザとそのブラウザを紹介します。

DNS (DomainNameSystem) は、ドメイン名を対応する IP アドレスに変換するためにインターネットで使用されるシステムです。 Linux システムでは、DNS キャッシュはドメイン名と IP アドレス間のマッピング関係をローカルに保存するメカニズムです。これにより、ドメイン名解決の速度が向上し、DNS サーバーの負担が軽減されます。 DNS キャッシュを使用すると、システムはその後同じドメイン名にアクセスするときに、毎回 DNS サーバーにクエリ要求を発行する必要がなく、IP アドレスを迅速に取得できるため、ネットワークのパフォーマンスと効率が向上します。この記事では、Linux で DNS キャッシュを表示および更新する方法、関連する詳細およびサンプル コードについて説明します。 DNS キャッシュの重要性 Linux システムでは、DNS キャッシュが重要な役割を果たします。その存在

Guava Cache の初心者ガイド: アプリケーションの高速化 Guava Cache は、アプリケーションのパフォーマンスを大幅に向上させることができる高性能のメモリ内キャッシュ ライブラリです。 LRU (最も最近使用されていないもの)、LFU (最も最近使用されていないもの)、TTL (生存時間) など、さまざまなキャッシュ戦略を提供します。 1. Guava キャッシュをインストールし、Guava キャッシュ ライブラリの依存関係をプロジェクトに追加します。 com.goog

タイトル: HTML ファイルのキャッシュ メカニズムとコード例 はじめに: Web ページを作成するときに、ブラウザーのキャッシュの問題に遭遇することがよくあります。この記事では、HTML ファイルのキャッシュ メカニズムを詳細に紹介し、読者がこのメカニズムをよりよく理解して適用できるように、いくつかの具体的なコード例を示します。 1. ブラウザのキャッシュ原理 ブラウザでは、Web ページにアクセスするたびに、まずキャッシュに Web ページのコピーがあるかどうかを確認します。存在する場合、Web ページのコンテンツはキャッシュから直接取得されます。これがブラウザー キャッシュの基本原理です。ブラウザキャッシュメカニズムの利点

win7 システムのコンピュータを使用している多くの友人は、コンピュータ使用時のインターネット速度が非常に遅いと感じています。何が起こっていますか?ネットワーク設定でネットワークに特定の制限がある可能性があります。今日は、ネットワーク制限を解除してネットワーク速度を非常に速くする方法を説明します。詳細設定を選択し、値を「20MHz」に変更するだけです。 /40MHzauto」で十分です。具体的なチュートリアルを見てみましょう。 win7 コンピュータのネットワーク速度を改善する方法 1. エディタでは win7 システムを例として説明し、デスクトップのタスクバーの右側にある「ネットワーク」アイコンを右クリックし、「ネットワークと共有センター」を選択して開きます。 。 2. 新しく表示されたインターフェースで「アダプター設定の変更」をクリックし、「ローカルエリア接続」を右クリックして「プロパティ」を選択して開きます。 3. オープンな「ローカル」

ブラウザキャッシュビデオをエクスポートする方法 インターネットの急速な発展に伴い、ビデオは人々の日常生活に欠かせないものになりました。 Web を閲覧しているときに、保存または共有したいビデオ コンテンツに遭遇することがよくありますが、ビデオ ファイルがブラウザのキャッシュにのみ存在するため、ビデオ ファイルのソースが見つからないことがあります。では、ブラウザのキャッシュからビデオをエクスポートするにはどうすればよいでしょうか?この記事では、いくつかの一般的な方法を紹介します。まず、ブラウザキャッシュという概念を明確にする必要があります。ブラウザー キャッシュは、ユーザー エクスペリエンスを向上させるためにブラウザーによって使用されます。

PHP 開発では、キャッシュ メカニズムにより、頻繁にアクセスされるデータがメモリまたはディスクに一時的に保存され、データベース アクセスの数が削減され、パフォーマンスが向上します。キャッシュの種類には主にメモリ、ファイル、データベース キャッシュが含まれます。キャッシュは、組み込み関数またはサードパーティのライブラリ (cache_get() や Memcache など) を使用して PHP に実装できます。一般的な実用的なアプリケーションには、データベース クエリ結果をキャッシュしてクエリ パフォーマンスを最適化したり、ページ出力をキャッシュしてレンダリングを高速化したりすることが含まれます。キャッシュ メカニズムにより、Web サイトの応答速度が効果的に向上し、ユーザー エクスペリエンスが向上し、サーバーの負荷が軽減されます。

PHPAPCu (php キャッシュの代替) は、PHP アプリケーションを高速化するオペコード キャッシュおよびデータ キャッシュ モジュールです。その可能性を最大限に活用するには、その高度な機能を理解することが重要です。 1. バッチ操作: APCu は、多数のキーと値のペアを同時に処理できるバッチ操作メソッドを提供します。これは、大規模なキャッシュのクリアまたは更新に役立ちます。 //キャッシュキーをバッチで取得 $values=apcu_fetch(["key1","key2","key3"]); //キャッシュキーをバッチでクリア apcu_delete(["key1","key2","key3"]) ;2 .キャッシュの有効期限を設定する: APCu を使用すると、キャッシュ項目の有効期限を設定して、指定した時間が経過すると自動的に期限切れになるようにできます。
