Maison  >  Article  >  base de données  >  Application de Redis dans le développement JavaScript : comment implémenter la mise en cache des données

Application de Redis dans le développement JavaScript : comment implémenter la mise en cache des données

王林
王林original
2023-07-29 09:33:201115parcourir

Application de Redis dans le développement JavaScript : Comment implémenter la mise en cache des données

Introduction :
Dans le développement JavaScript, la mise en cache des données est un concept très important. Il améliore les performances et la réactivité des applications et réduit le nombre de requêtes adressées au serveur. Redis (Remote Dictionary Server) est une base de données open source en mémoire qui peut être utilisée pour la mise en cache des données dans des applications hautes performances. Cet article présentera l'application de Redis dans le développement JavaScript et montrera comment implémenter la mise en cache des données à travers des exemples de code.

Texte contenu :

Redis est un système de stockage de données basé sur la mémoire qui peut charger des données en mémoire pour améliorer la vitesse d'accès. Il fournit des structures de données riches et des commandes pour implémenter la mise en cache des données dans le développement JavaScript.

Tout d'abord, nous devons introduire la bibliothèque client Redis dans le projet JavaScript. Ioredis est une bibliothèque client Redis couramment utilisée, qui fournit une API riche pour interagir avec Redis. La bibliothèque ioredis peut être installée via npm :

npm install ioredis

Une fois l'installation terminée, introduisez la bibliothèque ioredis dans le fichier JavaScript :

const Redis = require('ioredis');
const redis = new Redis();

Ensuite, nous pouvons utiliser Redis pour la mise en cache des données.

  1. Cache de données unique
    Nous pouvons stocker un élément de données dans Redis et définir le délai d'expiration pour réaliser la mise en cache des données. Voici un exemple de code :
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');

Dans le code ci-dessus, nous vérifions d'abord si la clé spécifiée existe dans Redis. Si elle existe, les données sont obtenues directement du cache et si elles n'existent pas, les données sont renvoyées ; est obtenu à partir de la base de données et stocké dans In Redis, le délai d'expiration est également défini. De cette façon, la prochaine fois que vous demanderez la même clé, les données seront obtenues directement du cache Redis sans interroger à nouveau la base de données.

  1. Caches de données multiples
    En plus de mettre en cache des données uniques, nous pouvons également stocker plusieurs éléments de données dans Redis. Voici un exemple de code :
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']);

Dans le code ci-dessus, nous obtenons d'abord les données correspondant à plusieurs clés à la fois via la commande mget. Ensuite, parcourez les données obtenues, analysez les données d'accès au cache (existantes) en objets et enregistrez les clés manquantes dans le cache (inexistantes). Ensuite, les données manquantes dans le cache sont obtenues par lots à partir de la base de données et stockées dans Redis. Enfin, toutes les données demandées sont renvoyées.

Conclusion :

Cet article présente l'application de Redis dans le développement JavaScript et montre comment implémenter la mise en cache des données à travers des exemples de code. En utilisant Redis pour la mise en cache des données, les performances et la réactivité de votre application peuvent être considérablement améliorées. Dans le même temps, Redis, en tant que puissante base de données en mémoire, peut également implémenter des fonctions plus avancées, telles que la publication/l'abonnement, les classements, etc. Par conséquent, dans le développement JavaScript, nous devons savoir utiliser Redis pour optimiser et améliorer les performances des applications et l'expérience utilisateur.

Référence :

  1. documentation officielle d'ioredis : https://github.com/luin/ioredis

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn