JavaScript 開発における Redis の応用: データ キャッシュを実装する方法

王林
リリース: 2023-07-29 09:33:20
オリジナル
1065 人が閲覧しました

JavaScript 開発における Redis の適用: データ キャッシュの実装方法

はじめに:
JavaScript 開発では、データ キャッシュは非常に重要な概念です。これにより、アプリケーションのパフォーマンスと応答性が向上し、サーバーへのリクエストの数が減少します。 Redis (Remote Dictionary Server) は、高パフォーマンス アプリケーションのデータ キャッシュに使用できるオープン ソースのメモリ内データベースです。この記事では、JavaScript 開発における Redis のアプリケーションを紹介し、コード例を通じてデータ キャッシュを実装する方法を示します。

コンテンツテキスト:

Redis は、データをメモリにロードしてアクセス速度を向上させることができるメモリベースのデータ ストレージ システムです。 JavaScript 開発でデータ キャッシュを実装するための豊富なデータ構造とコマンドを提供します。

まず、Redis クライアント ライブラリを JavaScript プロジェクトに導入する必要があります。一般的に使用される Redis クライアント ライブラリは ioredis で、Redis と対話するための豊富な API を提供します。 ioredis ライブラリは npm を通じてインストールできます:

npm install ioredis
ログイン後にコピー

インストールが完了したら、ioredis ライブラリを JavaScript ファイルに導入します:

const Redis = require('ioredis');
const redis = new Redis();
ログイン後にコピー

次に、データ キャッシュに Redis を使用できます。

  1. 単一データ キャッシュ
    データ項目を Redis に保存し、有効期限を設定してデータ キャッシュを実現できます。
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');
ログイン後にコピー

上記のコードでは、まず指定されたキーが Redis に存在するかどうかを確認し、存在する場合はキャッシュから直接データを取得して返します。存在しない場合はデータベースから取得して Redis に保存し、有効期限を設定します。このようにして、次回同じキーをリクエストすると、データベースに再度クエリを実行することなく、データが Redis キャッシュから直接取得されます。

  1. 複数のデータ キャッシュ
    単一データのキャッシュに加えて、複数のデータ項目を Redis に保存することもできます。以下はサンプル コードです。
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']);
ログイン後にコピー

上記のコードでは、まず mget コマンドを通じて複数のキーに対応するデータを一度に取得します。次に、取得したデータを反復処理し、キャッシュ ヒット (存在する) データをオブジェクトに解析し、キャッシュ ミス (存在しない) キーを記録します。次に、キャッシュミスデータをデータベースからバッチで取得し、Redis に保存します。最後に、要求されたすべてのデータが返されます。

結論:

この記事では、JavaScript 開発における Redis のアプリケーションを紹介し、コード例を通じてデータ キャッシュを実装する方法を示します。データ キャッシュに Redis を使用すると、アプリケーションのパフォーマンスと応答性が大幅に向上します。同時に、Redis は強力なメモリ内データベースとして、パブリッシュ/サブスクライブ、ランキングなどのより高度な機能も実装できます。したがって、JavaScript 開発では、Redis を上手に使用してアプリケーションのパフォーマンスとユーザー エクスペリエンスを最適化および向上させる必要があります。

参考文献:

  1. ioredis 公式ドキュメント: https://github.com/luin/ioredis

以上がJavaScript 開発における Redis の応用: データ キャッシュを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!