Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

Node.js でのキャッシュへのアクセス

apigee-access モジュールを使用すると、Node.js アプリケーションから Edge 分散キャッシュにアクセスできます。このモジュールには、キャッシュの取得やデータの挿入取得削除に使用するメソッドが含まれています。

The Apigee Edge distributed cache lets you store strings or other data. Like most caches, it is a least-recently-used cache with a maximum size. Inside Apigee Edge, the cache is distributed among all nodes where your Node.js application executes. You can manage the cache through an Apigee Edge API. Using the API, you can manually create cache resources, or you can use the default resource. For an introduction to caching on Apigee Edge, see Persistence tools in Edge. To learn more about the distributed cache, see Example: General purpose caching.

apigee-access モジュールについて、およびこのモジュールの他の機能については、「apigee-access モジュールの使用」を参照してください。

メソッド


(1) getCache

var cache = apigee.getCache('cache-name');

名前付きキャッシュを参照し、必要があれば作成します。作成されるキャッシュには、一般的な状況に適した定義済みの構成パラメータセットが使用されます。

パラメータ:

cache-name - アクセス対象キャッシュの名前。

戻り値:

キャッシュオブジェクト。

例:

var apigee = require('apigee-access');
    var cache = apigee.getCache('cache');

 


(2) getCache

var customCache = apigee.getCache('cache-name', { parameter: 'value'} );

Access a custom cache resource specified in a configuration object. For information about how to create a cache resource, see Creating and editing an environment cache.

パラメータ:

cache-name - カスタムキャッシュの名前。

{parameter: 'value'} - (省略可能) 構成オブジェクト。空のオブジェクトでも構いません。または、以下の省略可能なパラメータを指定できます。

  • resource: キャッシュデータが保存される、Apigee の「キャッシュリソース」の場所。キャッシュリソースは、メモリー割り当てなどのキャッシュパラメータの微調整に使用されます。指定がない場合は、デフォルトのリソースが使用されます。キャッシュリソースが存在しない場合は、メソッドからエラーがスローされます。

  • scope: 競合を防ぐためにキャッシュエントリにプレフィックスを付けるかどうかを指定します。有効な値は globalapplicationexclusive です。

    • global: 同じ Apigee「環境」内にあるすべての Node.js アプリケーションが全キャッシュエントリを見ることができます。

    • application: 同じ Apigee Edge アプリケーションの一部であるすべての Node.js アプリケーションが全キャッシュエントリを見ることができます。

    • exclusive: (デフォルト) 同じ名前を持つ同じアプリケーション内の Node.js キャッシュだけがキャッシュエントリを見ることができます。これがデフォルトです。

  • prefix: If the cache key name includes a prefix, as described in Populate Cache policy and Working with cache keys, use this parameter to specify it. Edge automatically adds a double-underscore suffix to the prefix name. So if a cache key was created with the prefix "UserToken", the prefix to specify here is "UserToken__". 

  • defaultTtl: キャッシュエントリのデフォルトの生存時間 (TTL) を秒単位で指定します。指定がない場合は、キャッシュリソースのデフォルトの TTL が使用されます。

  • timeout: 分散キャッシュから結果をフェッチするまでの待機時間 (秒単位)。デフォルトは 30 秒です。待ち時間感度の高いアプリケーションでは、キャッシュインフラストラクチャが過負荷の場合にレスポンス時間が遅くならないようにするため、この値を小さくするのが望ましいことがあります。

戻り値:

カスタムキャッシュオブジェクト。

例:

var apigee = require('apigee-access');
var customCache = apigee.getCache('MyCustomCache',
  { resource: 'MyCustomResource', scope: 'global', prefix: 'UserToken__'} ); 

 


put

cache.put('key', data, ttl, function(error));

データをキャッシュに挿入します。

パラメータ:

  • key: (Required) A string that uniquely identifies the item in the cache. Cache keys are limited to a size of 2 KB.

  • data: (必須) キャッシュするデータを表す文字列、Buffer、またはオブジェクト。これ以外のデータ型はエラーになります。便宜上、オブジェクトは「JSON.stringify」を使用して文字列に変換されます。

  • ttl: (省略可能) キャッシュ内にデータをとどめる最長時間 (秒単位)。指定がない場合は、デフォルトの TTL が使用されます。

  • callback: (省略可能) 指定する場合は、キャッシュにデータが安全に格納された後に呼び出される関数。挿入エラーがあった場合は、第 1 パラメータとして Error オブジェクトが指定された状態で呼び出されます。それ以外の場合は、パラメータなしで呼び出されます。

例:

var apigee = require('apigee-access');
var cache = apigee.getCache();
// Insert a string with a timeout of 120 seconds
cache.put('key2', 'Hello, World!', 120);
// Insert a string and get notified when insert is complete
cache.put('key4', 'Hello, World!', function(err) {
  // "err" will be undefined unless there was an error on insert
});

 


get

cache.get('key', function(error, data));

キャッシュからデータを取得します。

パラメータ:

  • key (必須): キャッシュ内の項目を一意に識別する文字列。

    Apigee Edge ポリシー (Populate Cache ポリシーなど) からキャッシュに挿入されるキャッシュエントリに対しては、ポリシーがエントリ用のキーを作成する具体的なやり方から類推してキャッシュキーを作成する必要があります。そのためには、ポリシーがどのように構成されているかを知る必要があります。キャッシュキーがポリシーによってどのように作成されるかについては、「キャッシュキーの使用」で説明しています。ここで、スコープに関連する文字列を指定しないように注意してください。Node.js からの呼び出しにおいて、スコープはすでにコンテキストの一部になっています。

  • callback(必須): データが使用可能な場合に呼び出される関数。キャッシュされているデータが存在する場合は、第 2 パラメータに指定されて返されます。

    • error - エラーオブジェクト。キャッシュからの取得中にエラーが発生した場合は、ここに Error オブジェクトがセットされます。それ以外の場合、このパラメータは「未定義値」にセットされます。

    • ​data - 取得されたデータがある場合はそのデータ。以下に示す 4 つの値のどれかです。
      • 挿入されていたのが文字列だった場合は、文字列です。
      • 挿入されていたのが Buffer だった場合は、バッファです。
      • 挿入されていたのがオブジェクトだった場合は、「JSON.stringify」によって生成された JSON バージョンのオブジェクトを含む文字列です。
      • 何もなかった場合は、「未定義値」になります。

例:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.get('key', function(err, data) {
  // If there was an error, then "err" will be set
  // "data" is the item that was retrieved
  // It will be a Buffer or a String depending on what was inserted.
});

 


remove

cache.remove('key', function(error));

キャッシュ項目を無効にします。キーが無効化されると、他の値が挿入されない限り、その後の get() リクエストでは「未定義値」が返されます。

パラメータ:

  • key(必須): 無効化するキャッシュ項目を一意に識別する文字列。

    Apigee Edge ポリシー (Populate Cache ポリシーなど) からキャッシュに挿入されるキャッシュエントリに対しては、ポリシーがエントリ用のキーを作成する具体的なやり方から類推してキャッシュキーを作成する必要があります。そのためには、ポリシーがどのように構成されているかを知る必要があります。キャッシュキーがポリシーによってどのように作成されるかについては、「キャッシュキーの使用」で説明しています。ここで、スコープに関連する文字列を指定しないように注意してください。Node.js からの呼び出しにおいて、スコープはすでにコンテキストの一部になっています。

  • callback(必須): エラーがあった場合に Error オブジェクトが第 1 パラメータにセットされて呼び出される、コールバック関数。

例:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.remove('key', function(err) {

});

Help or comments?