ホームページ >ウェブフロントエンド >フロントエンドQ&A >Nodejs がキャッシュを使用する方法
インターネットの発展に伴い、ネットワークアプリケーションはますます複雑化し、アクセス要求もますます増加しています。アプリケーションのパフォーマンスを向上させるには、キャッシュが重要なオプションになっており、高速なサーバーサイド JavaScript 言語である Node.js も、キャッシュを使用する複数の方法をサポートしています。この記事では、Node.js がキャッシュを使用してアプリケーションのパフォーマンスを向上させる方法を紹介します。
1. キャッシュの基本原則
キャッシュでは、頻繁に使用されるデータをメモリまたはディスクに保存できます。データを使用する必要がある場合は、キャッシュから直接取得できるため、必要性が軽減されます。クエリ時間ごとに、システムの応答速度が向上します。キャッシュは通常、キーと値のペアの形式でデータを保存します。キーには任意のタイプのデータを使用でき、値には文字列、数値、JavaScript オブジェクト、またはその他のデータ型を使用できます。
Node.js では、コア モジュール cache
を使用して独自のキャッシュを作成できます。このモジュールは次のメソッドを提供します:
cache.get(key)
: 指定されたキー値に対応するデータを取得します。 cache.set(key, value, ttl)
: 指定されたキーを識別子として使用して、指定された値をキャッシュに保存します。 ttl は生存時間 (英語では Time To Live) を表します。つまり、この時間内であればキャッシュからデータにアクセスできるということです。 cache.del(key)
: 指定されたキー値に対応するデータを削除します。 cache.clear()
: すべてのキャッシュをクリアします。 Node.js の組み込みキャッシュ モジュールを使用してキャッシュされたデータは、現在のプロセス内でのみ共有でき、プロセス間で共有できないことに注意してください。プロセス間共有を実現する必要がある場合は、Memcached や Redis などのサードパーティのキャッシュ モジュールを使用できます。
2. Node.js の組み込みキャッシュ モジュールを使用する
実際の開発では、Node.js の組み込み cache
モジュールを使用してキャッシュすることができます。データ。簡単な例を次に示します。
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数据
上の例では、まずキャッシュからデータを取得しようとします。対応するキーが見つかった場合は、キャッシュ内のデータが直接使用されます。見つからない場合は、データベースがクエリされ、クエリされたデータがキャッシュに保存されて、データベース クエリの数が削減されます。このデータの存続時間は 1 時間です。有効期限が切れた後は、データベースに再クエリを実行して、キャッシュ内のデータを更新する必要があります。
3. Redis キャッシュを使用する
Node.js の組み込みキャッシュ モジュールを使用することに加えて、Redis などのサードパーティ キャッシュ モジュールを使用することもできます。 Redis は、インターネット アプリケーションのキャッシュを可能にするメモリベースのキャッシュ データベースです。 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数据
上記の例では、Redis の get
メソッドを使用してデータを取得し、対応するキーが見つかった場合は、キャッシュが直接使用されます。データ入力。見つからない場合は、データベースにクエリを実行し、クエリされたデータを Redis に保存して、データベース クエリの数を減らします。このデータの生存時間は 1 時間です。有効期限が切れた後は、データベースを再クエリして、Redis のデータを更新する必要があります。
4. キャッシュ無効化処理
キャッシュされたデータは生存期間中は常に同じままですが、キャッシュされたデータの有効期限が切れると、データベースに再クエリを実行してキャッシュ内のデータを削除する必要があります。更新する必要があります。データのリアルタイム性を確保するために、タイマーを使用してキャッシュ内の期限切れデータを定期的にクリアできます。たとえば、5 分ごとにキャッシュをクリアします:
setInterval(() => { cache.clear(); }, 300000);
上記の例では、setInterval
メソッドを使用して、キャッシュ内の期限切れデータを定期的にクリアします。時間間隔は 5 分です。つまり、5 分ごとのクリーニングです。
5. キャッシュ戦略
キャッシュを使用する場合、アプリケーションのパフォーマンスを向上させるためにいくつかのキャッシュ戦略を考慮する必要があります。
キャッシュ削除戦略とは、キャッシュが特定のサイズに達するか、生存時間が特定の期間に達した後、いくつかの削除戦略を採用する必要があることを意味します。キャッシュ内のデータをクリーンアップします。一般的な削除戦略は次のとおりです。
実際の開発では、特定のアプリケーション シナリオに応じてさまざまなキャッシュ更新戦略を採用して、キャッシュとデータベース間のデータの一貫性を確保できます。
6. 概要
キャッシュは、アプリケーションのパフォーマンスを向上させる重要な手段の 1 つです。 Node.js では、組み込みの cache
モジュールを使用してキャッシュを実装することも、Redis などのサードパーティのキャッシュ モジュールを使用することもできます。キャッシュを使用する場合は、キャッシュの効率とデータの一貫性を向上させるために、キャッシュの削除戦略とキャッシュの更新戦略を考慮する必要があります。キャッシュによりアプリケーションのパフォーマンスが向上しますが、キャッシュのセキュリティと管理コストにも注意する必要があります。
以上がNodejs がキャッシュを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。