Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie Caching in FastAPI, um Antworten zu beschleunigen

So verwenden Sie Caching in FastAPI, um Antworten zu beschleunigen

王林
王林Original
2023-07-28 20:17:391814Durchsuche

So nutzen Sie Caching in FastAPI, um Antworten zu beschleunigen

Zitat:
In der modernen Webentwicklung ist Leistung ein wichtiges Anliegen. Wenn unsere Anwendung nicht schnell auf Kundenanfragen reagieren kann, kann dies zu einer Verschlechterung der Benutzererfahrung oder sogar zu einer Benutzerabwanderung führen. Die Verwendung von Cache ist eine der gängigen Methoden zur Verbesserung der Leistung von Webanwendungen. In diesem Artikel untersuchen wir, wie Caching verwendet werden kann, um die Reaktionsgeschwindigkeit des FastAPI-Frameworks zu beschleunigen, und stellen entsprechende Codebeispiele bereit.

1. Was ist Cache?
Caching ist eine Technologie, die häufig aufgerufene Daten im Speicher speichert. Es kann die Anzahl der Zugriffe auf die Datenbank oder andere externe Ressourcen reduzieren und so die Reaktion auf Kundenanfragen beschleunigen. Natürlich gibt es bei der gleichzeitigen Nutzung des Caches gewisse Einschränkungen und Vorsichtsmaßnahmen.

2. Verwendung von Caching in FastAPI
FastAPI ist ein modernes, schnelles (hochleistungsfähiges) Web-Framework, das auf Standard-Python-Typ-Hinweisen basiert. Seine unterste Ebene ist mit dem Starlette-Framework erstellt. Die Verwendung des Caches in FastAPI erfordert die Verwendung der Caching-Funktion des Starlette-Frameworks. Im Folgenden zeigen wir, wie Sie Starlette-Caching verwenden, um die Reaktionsgeschwindigkeit von FastAPI zu optimieren.

Zuerst müssen wir Starlette und die Cache-Bibliothek cachetools installieren: 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()rrreee

Dann führen wir die erforderlichen Bibliotheken in unserer FastAPI-Anwendung ein:

rrreee
Als nächstes können wir eine FastAPI-Anwendungsinstanz definieren:

rrreee
    Dann können wir einen Cache definieren, um die Daten zu speichern, die wir zwischenspeichern möchten. In diesem Beispiel verwenden wir TTLCache als Cache, der abgelaufene Daten gemäß der „Time to Live“ (TTL)-Richtlinie automatisch löscht.
  1. rrreee
  2. Als nächstes können wir eine Routenverarbeitungsfunktion definieren, die zwischengespeichert werden muss. Verwenden Sie den Dekorator @cached(cache) für das Caching:
  3. rrreee
  4. get_data_from_database() im obigen Code ist eine asynchrone Methode, die zum Abrufen von Daten aus einer Datenbank oder anderen externen Ressourcen verwendet wird Funktion.
  5. Endlich können wir die FastAPI-Anwendung ausführen und den Caching-Effekt testen. Beim ersten Zugriff auf /api/data ruft die Funktion get_data() die Daten aus der Datenbank ab und speichert sie im Cache. Nachfolgende Zugriffe holen die Daten direkt aus dem Cache, ohne erneut auf die Datenbank zuzugreifen. 3. Einschränkungen und Vorsichtsmaßnahmen für den Cache Konsistenz. Wenn sich die Daten ändern, muss der Cache rechtzeitig aktualisiert werden.

Caching-Strategie: Die Cache-Zeitstrategie muss an die Geschäftsanforderungen angepasst werden. Die Verwendung einer zu langen Cache-Zeit kann dazu führen, dass Daten ablaufen, während die Verwendung einer zu kurzen Cache-Zeit zu häufigen Datenbankzugriffen führen kann.

Cache-Kapazität: Auch die Cache-Kapazität ist ein Thema, das Aufmerksamkeit erfordert. Wenn die Cache-Kapazität nicht ausreicht, kann es dazu kommen, dass alte Daten ersetzt werden und dadurch die Anzahl der Zugriffe auf die Datenbank oder andere externe Ressourcen steigt.

    Fazit:
  1. In diesem Artikel haben wir untersucht, wie man Caching in FastAPI verwendet, um Antworten zu beschleunigen. Wir haben die Caching-Funktion des Starlette-Frameworks und die Cachetools-Bibliothek verwendet, um Caching zu implementieren. Obwohl die Verwendung von Cache die Leistung verbessern kann, müssen Sie auch auf Aspekte wie Cache-Konsistenz, Strategie und Kapazität achten. Hoffentlich hilft Ihnen dieser Artikel dabei, die Leistung Ihrer FastAPI-Anwendung zu optimieren.
  2. Referenzmaterialien:
  3. Offizielle Dokumentation von FastAPI: https://fastapi.tiangolo.com/
🎜Offizielle Dokumentation von Starlette: https://www.starlette.io/🎜🎜Dokumentation der Cachetools-Bibliothek: https://cachetools. readthedocs.io/🎜🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Caching in FastAPI, um Antworten zu beschleunigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn