Apakah pengambilan data yang lambat dan berulang menyebabkan aplikasi Anda berperforma buruk? Coba caching untuk menyelesaikan masalah.
Membangun aplikasi web yang cepat dan andal menjadi lebih penting dari sebelumnya dalam lanskap digital saat ini. Pengguna memiliki harapan yang tinggi dalam hal kinerja situs web. Waktu pemuatan atau waktu henti yang lambat dapat menyebabkan frustrasi pelanggan dan rusaknya reputasi.
Salah satu cara untuk mencapai aplikasi web yang cepat dan andal adalah melalui penggunaan caching. Ada berbagai jenis cache yang dapat Anda terapkan di aplikasi Anda, termasuk cache dalam memori, cache browser, cache database, dan cache CDN.
Apa itu caching, dan apa bedanya in-memory caching? Bagaimana Anda dapat meningkatkan kinerja aplikasi Nest.js Anda dengan caching dalam memori?
Apa itu Caching?
Caching adalah proses menyimpan data yang sering diakses di lokasi sementara untuk meningkatkan kinerja aplikasi atau sistem. Data yang di-cache dapat dengan cepat diambil dan disajikan kepada pengguna tanpa harus mengambilnya lagi dari sumber aslinya.
Aplikasi menggunakan caching untuk mengirimkan konten lebih cepat dan efisien, yang menghasilkan pengalaman pengguna yang lebih baik dan mengurangi beban pada sistem yang mendasarinya. Jenis caching yang paling umum termasuk caching dalam memori, penyimpanan CDN, caching browser, dan caching basis data.
Apa itu Caching Dalam Memori?
Caching dalam memori adalah jenis caching di mana aplikasi menyimpan sementara data yang sering diakses di memori server. Alih-alih membuat panggilan database yang mahal setiap kali aplikasi memproses permintaan untuk mengakses data, aplikasi dapat mengambil data tersebut dari memori.
Caching data dalam memori berarti aplikasi mengakses data lebih cepat, dan ini menghasilkan peningkatan kinerja.
Cara Menerapkan In-Memory Caching di Aplikasi Nest.js
Nest.js memiliki dukungan bawaan untuk caching menggunakan driver seperti Redis, Memcached, dan banyak lagi. Namun, untuk memudahkan pemahaman, artikel ini menggunakan modul cache memori bawaan yang disediakan Nest.js.
Bagian ini menganggap Anda sudah memiliki aplikasi Nest.js yang dibuat dengan perintah Nest CLI: sarang baru [nama aplikasi]. Untuk menerapkan cache dalam memori di titik akhir, Anda harus sudah memiliki file modul, layanan, dan pengontrol, atau membuatnya menggunakan sarangmenghasilkan memerintah. Anda dapat mengetahui lebih lanjut tentang menghasilkan sarang dalam Dokumentasi Nest CLI.
Langkah pertama untuk mengimplementasikan cache dalam memori adalah mengimpor file CacheModul dari @nestjs/umum ke dalam modul titik akhir Anda seperti yang terlihat di bawah ini:
// contoh.modul.ts
impor { Modul, CacheModule } dari'@nestjs/umum';@Modul({
impor: [CacheModule.register()],
})
eksporkelas ContohModul {}
Selanjutnya, Anda perlu mengimpor Layanan Cache dan menyuntikkannya ke layanan Nest.js yang berkomunikasi dengan a basis data seperti MongoDB. Anda dapat melihat bagaimana contoh kode berikut melakukan ini:
// contoh.layanan.ts
impor { Dapat disuntikkan, Layanan Cache } dari'@nestjs/umum';@Injeksi()
eksporkelas ContohLayanan {
konstruktor(pribadi readonly cacheService: CacheService) {}asinkron getData(): Janji<setiap> {
const cacheKey = 'data saya';
membiarkan data = menungguini.cacheService.get (cacheKey);jika (! data) {
// mengambil data dari database atau API
data = menungguini.fetchData();// data cache untuk penggunaan masa depan
menungguini.cacheService.set (cacheKey, data, {ttl: 60 });
}kembali data;
}
pribadiasinkron ambilData(): Janji<setiap> {
// ambil data dari database
}
}
Pada contoh kode di atas, file ContohLayanan menggunakan Layanan Cache sebagai ketergantungan. Itu getData metode memeriksa apakah data tersedia di cache menggunakan kunci (cacheKey), jika data tidak ada dalam cache, data akan diambil dari database dan disimpan dalam cache untuk digunakan nanti.
Itu Layanan Cache mempunyai sebuah mengatur metode yang mengambil objek sebagai argumen. Dalam hal ini, Anda dapat melihat bagaimana nilainya { ttl: 60 } menyetel time-to-live menjadi 60 detik. Ini menyiratkan bahwa layanan akan secara otomatis menghapus data yang di-cache setelah satu menit.
Beberapa keuntungan penting dari caching dalam memori adalah sebagai berikut:
- Peningkatan skalabilitas: Caching dalam memori dapat membantu meningkatkan skalabilitas aplikasi dengan mengurangi beban pada sumber data yang mendasarinya.
- Waktu respons lebih cepat: Caching data yang sering diakses di memori mengurangi waktu yang diperlukan untuk mengambil data, menghasilkan waktu respons yang lebih cepat.
- Pengalaman pengguna yang lebih baik: Waktu respons yang lebih cepat dan peningkatan skalabilitas dapat membantu memberikan pengalaman pengguna yang lebih baik dengan mengurangi waktu tunggu dan meningkatkan kinerja aplikasi secara keseluruhan.
- Mengurangi biaya: Dengan mengurangi beban pada sumber data, caching dalam memori dapat membantu mengurangi biaya menjalankan aplikasi.
Mengoptimalkan Aplikasi Nest.js Dengan In-Memory Caching
Caching dalam memori adalah cara yang sangat efektif untuk meningkatkan kinerja aplikasi secara keseluruhan. Anda telah melihat cara mengimplementasikan cache dalam memori di Nest.js dan cara meningkatkan skalabilitas dan pengalaman pengguna. Itu juga dapat meningkatkan waktu respons, dan mengurangi biaya menjalankan aplikasi Anda.
Coba gunakan konsep caching untuk penggunaan praktis saat membangun API atau aplikasi Nest.js Anda berikutnya.