Cara menggunakan caching dalam FastAPI untuk mempercepatkan respons
Petikan:
Dalam pembangunan web moden, prestasi adalah kebimbangan penting. Jika aplikasi kami tidak dapat bertindak balas terhadap permintaan pelanggan dengan cepat, ia boleh menyebabkan penurunan dalam pengalaman pengguna atau bahkan pergolakan pengguna. Menggunakan cache adalah salah satu kaedah biasa untuk meningkatkan prestasi aplikasi web. Dalam artikel ini, kami akan meneroka cara menggunakan caching untuk mempercepatkan kelajuan tindak balas rangka kerja FastAPI dan menyediakan contoh kod yang sepadan.
1. Apakah itu cache?
Caching ialah teknologi yang menyimpan data yang kerap diakses dalam ingatan. Ia boleh mengurangkan bilangan akses kepada pangkalan data atau sumber luaran lain, dengan itu mempercepatkan tindak balas kepada permintaan pelanggan. Sudah tentu, terdapat sekatan dan langkah berjaga-jaga tertentu apabila menggunakan cache pada masa yang sama.
2. Menggunakan caching dalam FastAPI
FastAPI ialah rangka kerja web yang moden dan pantas (berprestasi tinggi) berdasarkan petunjuk jenis Python standard. Menggunakan caching dalam FastAPI memerlukan penggunaan fungsi caching rangka kerja Starlette. Di bawah ini kami akan menunjukkan cara menggunakan caching Starlette untuk mengoptimumkan kelajuan tindak balas FastAPI.
Mula-mula, kita perlu memasang Starlette dan pustaka cache 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
rrreee
Seterusnya, kami boleh menentukan contoh aplikasi FastAPI :
@cached(cache)
untuk caching: get_data_from_database()
dalam kod di atas ialah kaedah tak segerak yang digunakan untuk mendapatkan data daripada pangkalan data atau sumber luaran lain fungsi. /api/data
buat kali pertama, fungsi get_data()
akan mendapatkan data daripada pangkalan data dan menyimpannya dalam cache. Capaian seterusnya akan mengambil data terus daripada cache tanpa mengakses pangkalan data lagi. 3. Had dan langkah berjaga-jaga cache
Walaupun menggunakan cache boleh meningkatkan kelajuan tindak balas dengan ketara, anda juga perlu memberi perhatian kepada perkara berikut:
Atas ialah kandungan terperinci Cara menggunakan caching dalam FastAPI untuk mempercepatkan respons. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!