在 Node.js 中存取快取

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

您可以使用 apigee-access 模組,從要使用的邊緣存取 Edge 分散式快取 可在 Node.js 應用程式中運作模組包含取得 快取計算取得以及移除資料。

您可以透過 Apigee Edge 分散式快取儲存字串或其他資料。和大多數快取一樣 是最近最少使用的快取,且具有大小上限。在 Apigee Edge 內,快取會分散 彼此分配的 Pod 數量您可以透過 Apigee Edge API。透過 API,您可以手動建立快取資源,也可以使用 預設資源如要瞭解如何在 Apigee Edge 上快取,請參閱 Edge 中的保存工具相關說明。瞭解詳情 有關分散式快取的資訊,請參閱範例:一般用途 快取

如需 apigee-access 模組和其其他功能的簡介,請參閱 使用 apigee-access 模組

方法


(1) getCache

var cache = apigee.getCache(cacheName);

查詢已命名的快取,並視需求建立。產生的快取會使用預先定義的集合 適合大多數情況的設定參數

參數:

cacheName - 字串,代表 快取。(不是快取資源的名稱)。

傳回:

快取物件。

範例:

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

(2) getCache

var customCache = apigee.getCache(cacheName, options );

存取設定物件中指定的自訂快取資源。如要瞭解 如要建立快取資源,請參閱建立及編輯環境 快取。

參數:

cacheName - 字串,代表 自訂快取。(不是快取資源的名稱)

options - 設定物件。 物件可以是空白,也可以包含以下選用參數:

  • resource:Apigee「快取資源」的名稱其中 快取資料的儲存方式快取資源可用於微調記憶體分配和其他快取 參數。如未指定,系統會使用預設資源。如果快取資源未 如果存在,此方法就會擲回錯誤。

  • scope:指定快取項目的前置字串 可防止衝突。有效值為 globalapplicationexclusive

    • global:所有快取項目都會顯示在以下位置的所有 Node.js 應用程式: 存取相同的 Apigee「環境」

    • application:所有快取項目可能會顯示為 部分元件。

    • exclusive:(預設) 快取項目只會顯示在 使用相同的應用程式名稱此為預設值。

  • prefix:如果快取金鑰名稱包含前置字串,例如 如填入 快取政策使用快取金鑰,請使用 這個參數來指定版本。Edge 會自動在 前置字串名稱因此,如果快取金鑰的前置字串是「UserToken」,這個前置字串就會指定 這裡是「UserToken__」

  • defaultTtl:指定快取的預設存留時間 就能快速找到模型如未指定,快取資源的預設存留時間將會

  • timeout:從 只需幾秒的時間就能取得分散式快取預設值是 30 秒。易受延遲時間影響的應用程式 會希望在快取基礎架構上, 超載。

傳回:

自訂快取物件。

範例:

var apigee = require('apigee-access');
var customCache = apigee.getCache('doesNotMatter',
  { resource: 'MyCustomResource', scope: 'global', prefix: 'UserToken'} );
customCache.put("myCacheKey", "xyz");

這與 LookupCache 政策搭配運作,如下所示:

<LookupCache name="Lookup-Cache-1">
  <CacheKey>
    <Prefix>UserToken</prefix>    
    <KeyFragment>myCacheKey</KeyFragment>
  </CacheKey>
  <CacheResource>MyCustomResource</CacheResource>
  <Scope>Global</Scope>
  <AssignTo>contextVariable</AssignTo>
</LookupCache>

電腦

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

將資料放入快取中。

參數:

  • key:(必要) 專門用來識別的字串。 快取中的項目。快取金鑰的大小上限為 2 KB。

  • data:(必要) 字串、緩衝區或物件 代表要快取的資料其他資料類型都會發生錯誤。為了方便起見 物件會透過「JSON.stringify」轉換成字串。

  • ttl:(選填) 保留最長時間 快速擷取快取資料如未指定,系統會使用預設存留時間。

  • callback:(選用) 如果有指定此值,則這個函式會 資料儲存在快取中時,系統會呼叫應用程式。系統會呼叫 Error 物件 如果有插入錯誤,則做為第一個參數;否則,系統會呼叫 沒有參數。

範例:

var apigee = require('apigee-access');
var cache = apigee.getCache();
// Insert a string into cache using the default TTL
cache.put('key1', 'Buenos dias, Mundo!');
// Insert a string into cache using a TTL of 120 seconds
cache.put('key2', 'Hello, World!', 120);
// Insert a string with the default TTL, and get notified when the insert is complete
cache.put('key3', 'Ciao, Mondo!', function(error) {
  // "error" will be falsy unless there was an error on insert
});
// Insert a string with a TTL of 600 seconds, and get notified when the insert is complete
cache.put('key4', 'Hallo Wereld!', 600, function(error) {
  // "error" will be falsy unless there was an error on insert
});

取得

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

從快取擷取資料。

參數:

  • key (必要):專門用來識別的字串。 快取中的項目。

    如果是從 Apigee Edge 政策 (例如填入快取政策) 傳送至快取的快取項目,您必須 建構快取金鑰時,必須從政策建立的特定方式推斷出建構快取金鑰 鍵。因此,您必須先瞭解這項政策的設定方式,雖然 使用快取金鑰 說明快取金鑰的建立方式。請注意,您不應指定 與範圍相關的字串值;,範圍已經 相關資訊

  • callback (必要):系統會呼叫的函式 在可用資料時執行此動作如果有快取資料,則系統會在第二次傳回資料 參數。

    • error:Error 物件。如果發生錯誤 從快取擷取時,此處將設定 Error 物件。否則這個 參數設為「未定義」。

    • data - 擷取資料 (如果有的話)。 以下四個值之一:

      • 如果插入字串,將會是字串。
      • 如果已插入緩衝區,該元素將為緩衝區。
      • 如果插入物件,就會是包含 JSON 版本的 「JSON.stringify」產生的物件。
      • 如果找不到,結果會是「未定義」。

範例:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.get('key', function(error, data) {
  // If there was an error, then "error" will be set.
  // If error is falsy, "data" is the item that was retrieved:
  //   - undefined, in the case of cache miss, or
  //   - a Buffer, or
  //   - a String
});

移除

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

撤銷快取項目。金鑰失效後,後續的 get() 要求就會傳回 「未定義」除非插入其他值

參數:

  • key (必要):專門用來識別的字串。 快取中的項目將撤銷。

    如果是從 Apigee Edge 政策 (例如填入快取政策) 傳送至快取的快取項目,您必須 建構快取金鑰時,必須從政策建立的特定方式推斷出建構快取金鑰 鍵。因此,您必須先瞭解這項政策的設定方式,雖然 使用快取金鑰 說明快取金鑰的建立方式。請注意,您不應指定 與範圍相關的字串值;,範圍已經 相關資訊

  • callback (必要):這個回呼函式會 若發生錯誤,則會呼叫 Error 物件做為第一個參數。

範例:

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