Rumah pembangunan bahagian belakang Tutorial Python Cara menggunakan caching dalam FastAPI untuk mempercepatkan respons

Cara menggunakan caching dalam FastAPI untuk mempercepatkan respons

Jul 28, 2023 pm 08:17 PM
cache fastapi memecut

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 alat cache: cachetools

pip install starlette
pip install cachetools
Salin selepas log masuk

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

from fastapi import FastAPI
from starlette.responses import JSONResponse
from cachetools import cached, TTLCache
Salin selepas log masuk

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

app = FastAPI()
Salin selepas log masuk

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

cache = TTLCache(maxsize=100, ttl=300)
Salin selepas log masuk

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

@app.get("/api/data")
@cached(cache)
async def get_data():
    # 从数据库或其他外部资源获取数据的逻辑
    data = await get_data_from_database()
    return JSONResponse(data)
Salin selepas log masuk

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

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

Kemudian, perkenalkan perpustakaan yang diperlukan dalam aplikasi FastAPI kami:

rrreee
Seterusnya, kami boleh menentukan contoh aplikasi FastAPI :

rrreee
    Kemudian, kita boleh menentukan cache untuk menyimpan data yang ingin kita cache. Dalam contoh ini, kami menggunakan TTLCache sebagai cache, yang akan mengosongkan data tamat tempoh secara automatik mengikut dasar "Masa untuk Hidup" (TTL).
  1. rrreee
  2. Seterusnya, kita boleh menentukan fungsi pemprosesan laluan yang perlu dicache. Gunakan penghias @cached(cache) untuk caching:
  3. rrreee
  4. 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.
  5. Akhir sekali, kami boleh menjalankan aplikasi FastAPI dan menguji kesan caching. Apabila mengakses /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:

Ketekalan data: Memandangkan cache ialah data sementara yang disimpan dalam ingatan, ia perlu Beri perhatian kepada data ketekalan. Apabila data berubah, cache perlu dikemas kini dalam masa.
  1. Strategi cache: Strategi masa cache perlu dilaraskan mengikut keperluan perniagaan. Menggunakan masa cache yang terlalu lama boleh menyebabkan data tamat tempoh, manakala menggunakan masa cache yang terlalu singkat boleh menyebabkan akses pangkalan data yang kerap.
  2. Kapasiti cache: Kapasiti cache juga merupakan isu yang memerlukan perhatian. Jika kapasiti cache tidak mencukupi, ia boleh menyebabkan data lama diganti, dengan itu meningkatkan bilangan akses kepada pangkalan data atau sumber luaran lain.
  3. Kesimpulan:
Dalam artikel ini, kami meneroka cara menggunakan caching dalam FastAPI untuk mempercepatkan respons. Kami menggunakan fungsi caching rangka kerja Starlette dan pustaka cachetools untuk melaksanakan caching. Walaupun menggunakan cache boleh meningkatkan prestasi, anda juga perlu memberi perhatian kepada isu seperti ketekalan cache, strategi dan kapasiti. Semoga artikel ini akan membantu anda mengoptimumkan prestasi aplikasi FastAPI anda. 🎜🎜Bahan rujukan: 🎜🎜🎜Dokumentasi rasmi FastAPI: https://fastapi.tiangolo.com/🎜🎜Dokumentasi rasmi Starlette: https://www.starlette.io/🎜🎜dokumentasi perpustakaan cachetools: https://cachetools. readthedocs.io/🎜🎜

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Di manakah fail video disimpan dalam cache penyemak imbas? Di manakah fail video disimpan dalam cache penyemak imbas? Feb 19, 2024 pm 05:09 PM

Dalam folder manakah penyemak imbas menyimpan video tersebut Apabila kita menggunakan pelayar Internet setiap hari, kita sering menonton pelbagai video dalam talian, seperti menonton video muzik di YouTube atau menonton filem di Netflix. Video ini akan dicache oleh penyemak imbas semasa proses pemuatan supaya ia boleh dimuatkan dengan cepat apabila dimainkan semula pada masa hadapan. Jadi persoalannya, dalam folder manakah video yang dicache ini sebenarnya disimpan? Pelayar yang berbeza menyimpan folder video cache di lokasi yang berbeza. Di bawah ini kami akan memperkenalkan beberapa pelayar biasa dan mereka

Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux Mar 07, 2024 am 08:43 AM

DNS (DomainNameSystem) ialah sistem yang digunakan di Internet untuk menukar nama domain kepada alamat IP yang sepadan. Dalam sistem Linux, cache DNS ialah mekanisme yang menyimpan hubungan pemetaan antara nama domain dan alamat IP secara tempatan, yang boleh meningkatkan kelajuan resolusi nama domain dan mengurangkan beban pada pelayan DNS. Caching DNS membolehkan sistem mendapatkan semula alamat IP dengan pantas apabila kemudiannya mengakses nama domain yang sama tanpa perlu mengeluarkan permintaan pertanyaan kepada pelayan DNS setiap kali, dengan itu meningkatkan prestasi dan kecekapan rangkaian. Artikel ini akan membincangkan dengan anda cara melihat dan memuat semula cache DNS pada Linux, serta butiran yang berkaitan dan kod sampel. Kepentingan Caching DNS Dalam sistem Linux, cache DNS memainkan peranan penting. kewujudannya

Percepatkan aplikasi anda: Panduan ringkas untuk caching Guava Percepatkan aplikasi anda: Panduan ringkas untuk caching Guava Jan 31, 2024 pm 09:11 PM

Bermula dengan Cache Guava: Percepatkan Aplikasi Anda Cache Guava ialah perpustakaan caching dalam memori berprestasi tinggi yang boleh meningkatkan prestasi aplikasi dengan ketara. Ia menyediakan pelbagai strategi caching, termasuk LRU (paling kurang digunakan baru-baru ini), LFU (paling kurang digunakan baru-baru ini), dan TTL (masa untuk hidup). 1. Pasang cache Guava dan tambahkan pergantungan perpustakaan cache Guava pada projek anda. com.goog

Adakah fail HTML akan dicache? Adakah fail HTML akan dicache? Feb 19, 2024 pm 01:51 PM

Tajuk: Mekanisme caching dan contoh kod fail HTML Pengenalan: Semasa menulis halaman web, kita sering menghadapi masalah cache penyemak imbas. Artikel ini akan memperkenalkan mekanisme caching fail HTML secara terperinci dan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dan menggunakan mekanisme ini dengan lebih baik. 1. Prinsip caching pelayar Dalam penyemak imbas, apabila halaman web diakses, penyemak imbas akan terlebih dahulu menyemak sama ada terdapat salinan halaman web dalam cache. Jika ada, kandungan halaman web diperoleh terus daripada cache Ini adalah prinsip asas caching pelayar. Faedah mekanisme caching pelayar

Bagaimana untuk menyelesaikan masalah kelajuan rangkaian yang perlahan pada komputer Win7 Bagaimana untuk menyelesaikan masalah kelajuan rangkaian yang perlahan pada komputer Win7 Jan 04, 2024 am 09:17 AM

Ramai rakan yang menggunakan komputer sistem win7 mendapati kelajuan Internet adalah sangat perlahan apabila menggunakan komputer. Apa yang sedang berlaku? Mungkin terdapat sekatan tertentu pada rangkaian dalam tetapan rangkaian anda Hari ini saya akan mengajar anda cara mengalih keluar sekatan rangkaian dan membuat kelajuan rangkaian sangat pantas dan tukar nilai kepada "20MHz / 40MHzauto" sudah memadai. Mari kita lihat tutorial khusus. Kaedah untuk meningkatkan kelajuan rangkaian komputer win7 1. Editor mengambil sistem win7 sebagai contoh untuk menggambarkan Klik kanan ikon "Rangkaian" di sebelah kanan bar tugas desktop dan pilih "Rangkaian dan Pusat Perkongsian" untuk membukanya. . 2. Klik "Tukar Tetapan Penyesuai" dalam antara muka yang baru muncul, kemudian klik kanan "Sambungan Kawasan Setempat" dan pilih "Properties" untuk membuka. 3. Dalam "Local

Penggunaan Lanjutan PHP APCu: Membuka Kunci Kuasa Tersembunyi Penggunaan Lanjutan PHP APCu: Membuka Kunci Kuasa Tersembunyi Mar 01, 2024 pm 09:10 PM

PHPAPCu (penggantian cache php) ialah cache opcode dan modul cache data yang mempercepatkan aplikasi PHP. Memahami ciri lanjutannya adalah penting untuk menggunakan potensi penuhnya. 1. Operasi kelompok: APCu menyediakan kaedah operasi kelompok yang boleh memproses sebilangan besar pasangan nilai kunci pada masa yang sama. Ini berguna untuk pembersihan atau kemas kini cache berskala besar. //Dapatkan kunci cache dalam kelompok $values=apcu_fetch(["key1","key2","key3"]); //Kosongkan kekunci cache dalam kelompok apcu_delete(["key1","key2","key3"]) ;2 .Tetapkan masa tamat tempoh cache: APCu membenarkan anda menetapkan masa tamat tempoh untuk item cache supaya ia tamat tempoh secara automatik selepas masa yang ditetapkan.

Mekanisme caching dan amalan aplikasi dalam pembangunan PHP Mekanisme caching dan amalan aplikasi dalam pembangunan PHP May 09, 2024 pm 01:30 PM

Dalam pembangunan PHP, mekanisme caching meningkatkan prestasi dengan menyimpan sementara data yang kerap diakses dalam memori atau cakera, dengan itu mengurangkan bilangan akses pangkalan data. Jenis cache terutamanya termasuk memori, fail dan cache pangkalan data. Caching boleh dilaksanakan dalam PHP menggunakan fungsi terbina dalam atau perpustakaan pihak ketiga, seperti cache_get() dan Memcache. Aplikasi praktikal biasa termasuk caching hasil pertanyaan pangkalan data untuk mengoptimumkan prestasi pertanyaan dan caching halaman output untuk mempercepatkan pemaparan. Mekanisme caching berkesan meningkatkan kelajuan tindak balas laman web, meningkatkan pengalaman pengguna dan mengurangkan beban pelayan.

Amalan Terbaik APCu: Meningkatkan Kecekapan Aplikasi Anda Amalan Terbaik APCu: Meningkatkan Kecekapan Aplikasi Anda Mar 01, 2024 pm 10:58 PM

Mengoptimumkan Saiz Cache dan Strategi Pembersihan Adalah penting untuk memperuntukkan saiz cache yang sesuai kepada APCu. Cache yang terlalu kecil tidak boleh cache data dengan cekap, manakala cache yang terlalu besar membazirkan memori. Secara umumnya, menetapkan saiz cache kepada 1/4 hingga 1/2 daripada memori yang tersedia adalah julat yang munasabah. Selain itu, mempunyai strategi pembersihan yang berkesan memastikan data yang lapuk atau tidak sah tidak disimpan dalam cache. Anda boleh menggunakan ciri pembersihan automatik APCu atau melaksanakan mekanisme pembersihan tersuai. Kod sampel: //Tetapkan saiz cache kepada 256MB apcu_add("cache_size",268435456); //Kosongkan cache setiap 60 minit apcu_add("cache_ttl",60*60);

See all articles