Aplikasi Redis dalam pembangunan JavaScript: Cara melaksanakan caching data
Pengenalan:
Dalam pembangunan JavaScript, caching data ialah konsep yang sangat penting. Ia meningkatkan prestasi aplikasi dan responsif serta mengurangkan bilangan permintaan kepada pelayan. Redis (Pelayan Kamus Jauh) ialah pangkalan data dalam memori sumber terbuka yang boleh digunakan untuk caching data dalam aplikasi berprestasi tinggi. Artikel ini akan memperkenalkan aplikasi Redis dalam pembangunan JavaScript dan menunjukkan cara melaksanakan caching data melalui contoh kod.
Teks kandungan:
Redis ialah sistem storan data berasaskan memori yang boleh memuatkan data ke dalam memori untuk meningkatkan kelajuan akses. Ia menyediakan struktur data yang kaya dan arahan untuk melaksanakan caching data dalam pembangunan JavaScript.
Pertama, kami perlu memperkenalkan perpustakaan klien Redis ke dalam projek JavaScript. Pustaka klien Redis yang biasa digunakan ialah ioredis, yang menyediakan API yang kaya untuk berinteraksi dengan Redis. Pustaka ioredis boleh dipasang melalui npm:
npm install ioredis
Selepas pemasangan selesai, perkenalkan perpustakaan ioredis ke dalam fail JavaScript:
const Redis = require('ioredis'); const redis = new Redis();
Seterusnya, kita boleh menggunakan Redis untuk caching data.
async function getDataFromCache(key) { const cachedData = await redis.get(key); if (cachedData) { console.log('从缓存中获取数据'); return JSON.parse(cachedData); } console.log('从数据库获取数据'); const dataFromDB = await fetchDataFromDB(key); redis.set(key, JSON.stringify(dataFromDB), 'ex', 60); return dataFromDB; } async function fetchDataFromDB(key) { // 从数据库中获取数据的逻辑 } // 使用方式: const data = await getDataFromCache('exampleKey');
Dalam kod di atas, kami mula-mula menyemak sama ada kunci yang dinyatakan wujud dalam Redis Jika ia wujud, data diperoleh terus daripada cache dan dikembalikan jika ia tidak wujud diperoleh daripada pangkalan data dan disimpan dalam Dalam Redis, masa tamat tempoh juga ditetapkan. Dengan cara ini, pada kali seterusnya anda meminta kunci yang sama, data akan diperoleh terus dari cache Redis tanpa menanyakan pangkalan data lagi.
async function getDataListFromCache(keys) { const cachedData = await redis.mget(keys); const nonCachedDataKeys = []; const dataMap = {}; for (let i = 0; i < keys.length; i++) { const key = keys[i]; const cachedDatum = cachedData[i]; if (cachedDatum) { dataMap[key] = JSON.parse(cachedDatum); } else { nonCachedDataKeys.push(key); } } if (nonCachedDataKeys.length > 0) { console.log('从数据库获取数据'); const dataFromDB = await fetchDataListFromDB(nonCachedDataKeys); for (const data of dataFromDB) { const key = data.key; redis.set(key, JSON.stringify(data), 'ex', 60); dataMap[key] = data; } } return keys.map(key => dataMap[key]); } async function fetchDataListFromDB(keys) { // 从数据库中批量获取数据的逻辑 } // 使用方式: const dataList = await getDataListFromCache(['key1', 'key2', 'key3']);
Dalam kod di atas, kami mula-mula mendapatkan data yang sepadan dengan berbilang kunci pada satu masa melalui arahan mget
. Kemudian, ulangi melalui data yang diperoleh, huraikan data hit cache (sedia ada) ke dalam objek, dan rekod kekunci hilang cache (tidak wujud). Kemudian, data kehilangan cache diperolehi dalam kelompok daripada pangkalan data dan disimpan dalam Redis. Akhirnya, semua data yang diminta dikembalikan.
Kesimpulan:
Artikel ini memperkenalkan aplikasi Redis dalam pembangunan JavaScript dan menunjukkan cara melaksanakan caching data melalui contoh kod. Dengan menggunakan Redis untuk caching data, prestasi dan responsif aplikasi anda boleh dipertingkatkan dengan ketara. Pada masa yang sama, Redis, sebagai pangkalan data dalam memori yang berkuasa, juga boleh melaksanakan fungsi yang lebih maju, seperti terbitkan/langganan, kedudukan, dsb. Oleh itu, dalam pembangunan JavaScript, kita harus pandai menggunakan Redis untuk mengoptimumkan dan meningkatkan prestasi aplikasi dan pengalaman pengguna.
Rujukan:
Atas ialah kandungan terperinci Aplikasi Redis dalam pembangunan JavaScript: Bagaimana untuk melaksanakan caching data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!