5.7. Node.js のキャッシュ例
以下の例は、実稼働環境で実行することは意図されていません。
制限: Minishift または CDK でこのサンプルアプリケーションを実行します。手動でのワークフローを使用して、この例を OpenShift Online Pro および OpenShift Container Platform にデプロイすることもできます。この例では、現在 OpenShift Online ドキュメンテーションでは使用できません。
頻度レベルの例: 高度。
Cache の例では、キャッシュを使用してアプリケーションの応答時間を向上させる方法を例示します。
この例では、以下の方法を紹介します。
- キャッシュを OpenShift にデプロイします。
- アプリケーション内でキャッシュを使用します。
5.7.1. キャッシュの仕組みと必要な場合にキャッシュがどのように機能するか リンクのコピーリンクがクリップボードにコピーされました!
キャッシュを使用すると、情報を保存し、一定期間アクセスできます。元のサービスを繰り返し呼び出すよりも、キャッシュ内の情報に問題なくアクセスすることができます。キャッシュを使用する欠点は、キャッシュされた情報が最新の状態ではないことです。ただし、キャッシュに保存されている各値に expiration または TTL(time to live)を設定することで、この問題を軽減することができます。
例5.3 キャッシュの例
service 1 と service 2 の 2 つのアプリケーションがあると します。
service1 は、service2 からの値によって異なります。
- service2 からの値が頻繁に変更されると、service1 は一定期間 service2 から値をキャッシュする可能性があります。
- キャッシュされた値を使用すると、service2 が呼び出される回数を減らすこともできます。
- service1 500 ミリ秒を取得して service2 から直接値を取得し、キャッシュ値を取得する 100 ミリ秒の場合、service1 はキャッシュされた各呼び出しに対してキャッシュされた値を使用して 400 ミリ秒を保存します。
- service1 が、1 秒あたり service2 5 へのキャッシュされていない呼び出しを行い、10 秒を超える呼び出しを行う場合、これは 50 回の呼び出しになります。
- service1 が、代わりに TTL が 1 秒のキャッシュされた値を使用して開始されると、10 秒間の呼び出し数が減ります。
Cache サンプルの仕組み
- キャッシュ、カット 名、 および greeting サービスがデプロイされ、公開されます。
- ユーザーは greeting サービスの web フロントエンドにアクセスします。
- ユーザーは、Web フロントエンドでボタンを使用して greeting HTTP API を呼び出します。
greeting サービスは、カット 名 サービスからの値によって異なります。
- greeting サービスは、最初にその値が キャッシュ サービスに保存されているかどうかを確認します。設定されている場合、キャッシュされた値が返されます。
- 値がキャッシュされていない場合、greeting サービスはカット 名 サービスを呼び出して値を返し、TTL を 5 秒で キャッシュ サービスに保存します。
- Web フロントエンドには、greeting サービスからの応答と、操作の合計時間が表示されます。
ユーザーはサービスを複数回呼び出し、キャッシュされた操作とキャッシュされていない操作の違いを確認します。
- キャッシュ操作はキャッシュされていない操作よりもはるかに高速です。
- ユーザーは、TTL の期限が切れる前にキャッシュを強制的に消去できます。