Dengan pembangunan Internet, aplikasi rangkaian menjadi lebih dan lebih kompleks, dan terdapat lebih banyak permintaan akses. Untuk meningkatkan prestasi aplikasi, caching telah menjadi pilihan penting, dan Node.js, sebagai bahasa JavaScript sebelah pelayan yang pantas, juga menyokong pelbagai cara untuk menggunakan caching. Artikel ini akan memperkenalkan cara Node.js menggunakan caching untuk meningkatkan prestasi aplikasi.
1. Prinsip asas caching
Cache boleh menyimpan beberapa data yang kerap digunakan dalam memori atau cakera Apabila data perlu digunakan, ia boleh diperolehi terus daripada cache, mengurangkan keperluan untuk setiap masa pertanyaan, meningkatkan kelajuan tindak balas sistem. Cache biasanya menyimpan data dalam bentuk pasangan nilai kunci, di mana kuncinya boleh berupa sebarang jenis data dan nilainya boleh berupa rentetan, nombor, objek JavaScript atau jenis data lain.
Dalam Node.js, kita boleh menggunakan modul teras cache
untuk mencipta cache kita sendiri. Modul ini menyediakan kaedah berikut:
cache.get(key)
: Dapatkan data yang sepadan dengan nilai kunci yang ditentukan. cache.set(key, value, ttl)
: Menyimpan nilai yang ditentukan ke dalam cache, menggunakan kunci yang ditentukan sebagai pengecam. ttl mewakili masa untuk hidup (Time To Live in English), iaitu, dalam masa ini, data boleh diakses daripada cache. cache.del(key)
: Padamkan data yang sepadan dengan nilai kunci yang ditentukan. cache.clear()
: Kosongkan semua cache. Perlu diingat bahawa data yang dicache menggunakan modul caching terbina dalam Node.js hanya boleh dikongsi dalam proses semasa dan tidak boleh dikongsi antara proses. Jika anda perlu mencapai perkongsian antara proses, anda boleh menggunakan modul cache pihak ketiga, seperti Memcached atau Redis.
2. Gunakan modul caching terbina dalam Node.js
Dalam pembangunan sebenar, kita boleh menggunakan modul cache
terbina dalam Node.js untuk cache data. Berikut ialah contoh mudah:
const cache = require('cache'); let data = null; if (cache.get('data')) { data = cache.get('data'); } else { // 数据库查询操作 data = db.query('SELECT * FROM users'); // 将数据存储到缓存中,使用'users'作为键,存活时间为1小时 cache.set('users', data, 3600); } // 使用data数据
Dalam contoh di atas, kami mula-mula cuba mendapatkan data daripada cache, dan jika kunci yang sepadan ditemui, kami terus menggunakan data daripada cache. Jika tidak dijumpai, pangkalan data akan ditanya dan data yang ditanya disimpan dalam cache untuk mengurangkan bilangan pertanyaan pangkalan data. Masa kelangsungan data ini ialah 1 jam Selepas tamat tempoh, anda perlu menanya semula pangkalan data dan mengemas kini data dalam cache.
3. Gunakan cache Redis
Selain menggunakan modul cache terbina dalam Node.js, kami juga boleh menggunakan modul cache pihak ketiga, seperti Redis. Redis ialah pangkalan data cache berasaskan memori yang membolehkan caching aplikasi Internet. Berikut ialah contoh penggunaan cache Redis:
const redis = require('redis'); const client = redis.createClient(); let data = null; client.get('users', (err, result) => { if (result) { data = result; } else { // 数据库查询操作 data = db.query('SELECT * FROM users'); // 将数据存储到Redis中,使用'users'作为键,存活时间为1小时 client.setex('users', 3600, JSON.stringify(data)); } }); // 使用data数据
Dalam contoh di atas, kami menggunakan kaedah get
Redis untuk mendapatkan data Jika kunci yang sepadan ditemui, data dalam cache digunakan secara langsung. Jika tidak ditemui, tanya pangkalan data dan simpan data yang ditanya dalam Redis untuk mengurangkan bilangan pertanyaan pangkalan data. Masa kelangsungan data ini ialah 1 jam Selepas tamat tempoh, anda perlu menanya semula pangkalan data dan mengemas kini data dalam Redis.
4. Pemprosesan ketidaksahihan cache
Data cache sentiasa kekal sama semasa masa hidup, tetapi apabila data cache tamat tempoh, pangkalan data perlu disoal semula dan data dalam cache perlu dikemas kini. Untuk memastikan sifat masa nyata data, kami boleh menggunakan pemasa untuk mengosongkan data yang telah tamat tempoh secara kerap dalam cache. Sebagai contoh, bersihkan cache setiap 5 minit:
setInterval(() => { cache.clear(); }, 300000);
Dalam contoh di atas, kami menggunakan kaedah setInterval
untuk mengosongkan data tamat tempoh secara kerap dalam cache Selang masa ialah 5 minit, iaitu dibersihkan setiap 5 minit.
5. Strategi caching
Terdapat beberapa strategi caching yang perlu dipertimbangkan apabila menggunakan cache untuk meningkatkan prestasi aplikasi.
Strategi penghapusan cache bermakna selepas cache mencapai saiz tertentu atau masa kelangsungan hidup mencapai tempoh tertentu, beberapa strategi penghapusan perlu diguna pakai untuk bersihkan data dalam cache. Strategi penghapusan biasa ialah:
Dalam pembangunan sebenar, strategi penyingkiran yang berbeza boleh diguna pakai mengikut senario aplikasi tertentu untuk meningkatkan kecekapan cache.
Strategi kemas kini cache merujuk kepada cara memastikan data dalam cache kekal disegerakkan dengan data dalam pangkalan data apabila data dalam pangkalan data dikemas kini. Strategi kemas kini cache biasa ialah:
Dalam pembangunan sebenar, strategi kemas kini cache yang berbeza boleh diguna pakai mengikut senario aplikasi tertentu untuk memastikan ketekalan data antara cache dan pangkalan data.
6. Ringkasan
Caching ialah salah satu cara penting untuk meningkatkan prestasi aplikasi. Dalam Node.js, kita boleh menggunakan modul cache
terbina dalam untuk melaksanakan caching atau kita boleh menggunakan modul caching pihak ketiga, seperti Redis. Apabila menggunakan cache, anda perlu mempertimbangkan strategi penyingkiran cache dan strategi kemas kini cache untuk meningkatkan kecekapan cache dan ketekalan data. Walaupun caching boleh meningkatkan prestasi aplikasi, terdapat juga keselamatan cache dan kos pengurusan yang perlu diberi perhatian.
Atas ialah kandungan terperinci Cara nodejs menggunakan caching. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!