Maison > développement back-end > Tutoriel Python > Comment utiliser la mise en cache dans FastAPI pour accélérer les réponses

Comment utiliser la mise en cache dans FastAPI pour accélérer les réponses

王林
Libérer: 2023-07-28 20:17:39
original
1820 Les gens l'ont consulté

Comment utiliser la mise en cache dans FastAPI pour accélérer les réponses

Citation :
Dans le développement Web moderne, les performances sont une préoccupation importante. Si notre application ne peut pas répondre rapidement aux demandes des clients, cela peut entraîner une baisse de l'expérience utilisateur, voire un désabonnement des utilisateurs. L'utilisation du cache est l'une des méthodes courantes pour améliorer les performances des applications Web. Dans cet article, nous explorerons comment utiliser la mise en cache pour accélérer la vitesse de réponse du framework FastAPI et fournirons des exemples de code correspondants.

1. Qu'est-ce que le cache ?
La mise en cache est une technologie qui stocke en mémoire les données fréquemment consultées. Il peut réduire le nombre d'accès à la base de données ou à d'autres ressources externes, accélérant ainsi la réponse aux demandes des clients. Bien entendu, il existe certaines restrictions et précautions lors de l'utilisation simultanée du cache.

2. Utilisation de la mise en cache dans FastAPI
FastAPI est un framework Web moderne et rapide (haute performance) basé sur des astuces de type Python standard. Sa couche inférieure est construite à l'aide du framework Starlette. L'utilisation de la mise en cache dans FastAPI nécessite l'utilisation de la fonction de mise en cache du framework Starlette. Ci-dessous, nous montrerons comment utiliser la mise en cache Starlette pour optimiser la vitesse de réponse de FastAPI.

Tout d'abord, nous devons installer Starlette et la bibliothèque de cache cachetools : cachetools

pip install starlette
pip install cachetools
Copier après la connexion

然后,在我们的FastAPI应用中引入所需的库:

from fastapi import FastAPI
from starlette.responses import JSONResponse
from cachetools import cached, TTLCache
Copier après la connexion

接下来,我们可以定义一个FastAPI应用实例:

app = FastAPI()
Copier après la connexion

然后,我们可以定义一个缓存器来存储我们想要缓存的数据。在本例中,我们使用TTLCache作为缓存器,它将根据"Time to Live"(TTL)策略自动清除过期的数据。

cache = TTLCache(maxsize=100, ttl=300)
Copier après la connexion

接下来,我们可以定义一个需要被缓存的路由处理函数。使用@cached(cache)装饰器来进行缓存:

@app.get("/api/data")
@cached(cache)
async def get_data():
    # 从数据库或其他外部资源获取数据的逻辑
    data = await get_data_from_database()
    return JSONResponse(data)
Copier après la connexion

以上代码中的get_data_from_database()是一个用于从数据库或其他外部资源获取数据的异步函数。

最后,我们可以运行FastAPI应用程序并测试缓存效果。当第一次访问/api/data时,get_data()rrreee

Ensuite, introduire les bibliothèques requises dans notre application FastAPI :

rrreee
Ensuite, nous pouvons définir une instance d'application FastAPI :

rrreee
    Ensuite, nous pouvons définir un cache pour stocker les données que nous voulons mettre en cache. Dans cet exemple, nous utilisons TTLCache comme cache, qui effacera automatiquement les données expirées conformément à la politique « Time to Live » (TTL).
  1. rrreee
  2. Ensuite, nous pouvons définir une fonction de traitement d'itinéraire qui doit être mise en cache. Utilisez le décorateur @cached(cache) pour la mise en cache :
  3. rrreee
  4. get_data_from_database() dans le code ci-dessus est une méthode asynchrone utilisée pour obtenir des données à partir d'une base de données ou d'autres ressources externes fonction.
  5. Enfin, nous pouvons exécuter l'application FastAPI et tester l'effet de mise en cache. Lors du premier accès à /api/data, la fonction get_data() récupérera les données de la base de données et les mettra en cache dans le cache. Les accès ultérieurs récupéreront les données directement depuis le cache sans accéder à nouveau à la base de données.

3. Limites et précautions du cache
Bien que l'utilisation du cache puisse améliorer considérablement la vitesse de réponse, vous devez également faire attention aux points suivants :

Cohérence des données : le cache étant une donnée temporaire stockée en mémoire, il faut faire attention aux données. cohérence. Lorsque les données changent, le cache doit être mis à jour à temps.
  1. Stratégie de mise en cache : la stratégie de temps de cache doit être ajustée en fonction des besoins de l'entreprise. L'utilisation d'une durée de cache trop longue peut entraîner l'expiration des données, tandis que l'utilisation d'une durée de cache trop courte peut entraîner des accès fréquents à la base de données.
  2. Capacité du cache : la capacité du cache est également un problème qui nécessite une attention particulière. Si la capacité du cache est insuffisante, cela peut entraîner le remplacement des anciennes données, augmentant ainsi le nombre d'accès à la base de données ou à d'autres ressources externes.
  3. Conclusion :
Dans cet article, nous avons exploré comment utiliser la mise en cache dans FastAPI pour accélérer les réponses. Nous avons utilisé la fonction de mise en cache du framework Starlette et la bibliothèque cachetools pour implémenter la mise en cache. Bien que l’utilisation du cache puisse améliorer les performances, vous devez également prêter attention à des problèmes tels que la cohérence, la stratégie et la capacité du cache. Espérons que cet article vous aidera à optimiser les performances de votre application FastAPI. 🎜🎜Matériaux de référence : 🎜🎜🎜Documentation officielle de FastAPI : https://fastapi.tiangolo.com/🎜🎜Documentation officielle de Starlette : https://www.starlette.io/🎜🎜documentation de la bibliothèque cachetools : https://cachetools. readthedocs.io/🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal