Доступ к кешу в Node.js

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Вы можете использовать модуль apigee-access для доступа к распределенному кешу Edge из приложения Node.js. Модуль включает в себя методы получения кэша , а также помещения , получения и удаления данных.

Распределенный кеш Apigee Edge позволяет хранить строки и другие данные. Как и большинство кэшей, это кэш, который использовался реже всего и имеет максимальный размер. Внутри Apigee Edge кеш распределяется между всеми узлами, на которых выполняется ваше приложение Node.js. Вы можете управлять кешем через API Apigee Edge. Используя API, вы можете вручную создавать ресурсы кэша или использовать ресурс по умолчанию. Общие сведения о кэшировании в Apigee Edge см. в разделе Инструменты сохранения данных в Edge . Дополнительные сведения о распределенном кэше см. в разделе Пример: кэширование общего назначения .

Знакомство с модулем apigee-access и другими его функциями см. в разделе «Использование модуля apigee-access» .

Методы


(1) ПолучитьКэш

var cache = apigee.getCache( cacheName );

Найдите именованный кэш и при необходимости создайте его. В результирующем кэше используется заранее определенный набор параметров конфигурации, подходящий для большинства ситуаций.

Параметры:

cacheName — строка, имя кэша. (Не имя ресурса кэша).

Возврат:

Объект кэша.

Пример:

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

(2) ПолучитьКэш

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

Доступ к пользовательскому ресурсу кэша, указанному в объекте конфигурации. Сведения о том, как создать ресурс кэша, см. в разделе Создание и редактирование кэша среды .

Параметры:

cacheName — строка, имя пользовательского кэша. (Не имя ресурса кэша)

options — объект конфигурации. Объект может быть пустым или содержать следующие необязательные параметры:

  • resource : имя «ресурса кэша» Apigee, где хранятся данные кэша. Ресурсы кэша используются для точной настройки распределения памяти и других параметров кэша. Если не указано, будет использоваться ресурс по умолчанию. Если ресурс кэша не существует, метод выдает ошибку.

  • scope : указывает, имеют ли записи кэша префикс для предотвращения коллизий. Допустимые значения: global , application и exclusive .

    • global : все записи кэша могут быть видны всем приложениям Node.js в одной «среде» Apigee.

    • application : все записи кэша могут быть просмотрены всеми кэшами Node.js, которые являются частью одного и того же приложения Apigee Edge.

    • exclusive : (по умолчанию) записи кэша видны только кэшам Node.js в том же приложении, имеющим то же имя. Это значение по умолчанию.

  • prefix : если имя ключа кэша включает префикс, как описано в разделах Политика заполнения кэша и Работа с ключами кэша , используйте этот параметр, чтобы указать его. Edge автоматически добавляет суффикс двойного подчеркивания к имени префикса. Таким образом, если ключ кэша был создан с префиксом «UserToken», здесь следует указать префикс «UserToken__».

  • defaultTtl : указывает время жизни записи кэша по умолчанию в секундах. Если не указано, будет использоваться значение TTL по умолчанию в ресурсе кэша.

  • 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 КБ.

  • data : (Обязательно) Строка, буфер или объект, представляющий данные для кэширования. Любой другой тип данных приведет к ошибке. Для удобства объекты будут преобразованы в строку с помощью «JSON.stringify».

  • ttl : (Необязательно) Максимальное время хранения данных в кеше в секундах. Если не указано, будет использоваться значение 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 (например, политики заполнения кэша ), вам необходимо создать ключ кэша, исходя из конкретного способа, которым политика создает ключи для записей. Для этого вам необходимо знать, как настроена политика. Хотя в разделе «Работа с ключами кэша» описывается, как ключи кэша создаются политиками, имейте в виду, что вам не следует указывать строковые значения, связанные с областью действия; в вызовах из Node.js область видимости уже является частью контекста.

  • 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 (например, политики заполнения кэша ), вам необходимо создать ключ кэша, исходя из конкретного способа, которым политика создает ключи для записей. Для этого вам необходимо знать, как настроена политика. Хотя в разделе «Работа с ключами кэша» описывается, как ключи кэша создаются политиками, имейте в виду, что вам не следует указывать строковые значения, связанные с областью действия; в вызовах из Node.js область видимости уже является частью контекста.

  • callback (обязательно): функция обратного вызова, которая будет вызываться с объектом Error в качестве первого параметра в случае возникновения ошибки.

Пример:

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