Вы просматриваете документацию по 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) 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: указывает, добавляются ли к записям кеша префиксы для предотвращения конфликтов. Допустимые значения: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 });
get
cache.get('key',
function(error, data));Извлекать данные из кеша.
Параметры:
-
key(обязательный). Строка, которая однозначно идентифицирует объект в кеше.Для записей кеша, помещенных в кеш из правила Apigee Edge (например, правила заполнения кеша), вам нужно будет создать ключ кеша, исходя из того, как правило создает ключи для записей. Для этого вам нужно знать, как настроено правило. В статье Как работать с ключами кеша описано, как правила создают ключи кеша. При этом следует помнить, что не нужно указывать строковые значения, связанные с областью действия. В вызовах из Node.js область действия уже является частью контекста.
-
callback(обязательно) – функция, которая будет вызываться, когда данные станут доступны. Если в кеше есть данные, они возвращаются во втором параметре.-
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() будут возвращать значение "undefined", если не будет вставлено другое значение.
Параметры:
-
key(обязательное). Строка, которая однозначно идентифицирует объект в кеше, который нужно сделать недействительным.Для записей кеша, помещенных в кеш из правила Apigee Edge (например, правила заполнения кеша), вам нужно будет создать ключ кеша, исходя из того, как правило создает ключи для записей. Для этого вам нужно знать, как настроено правило. В статье Как работать с ключами кеша рассказывается, как правила создают ключи кеша, но помните, что вам не нужно указывать строковые значения, связанные с областью действия. В вызовах из Node.js область действия уже является частью контекста.
-
callback(обязательный параметр). Функция обратного вызова, которая будет вызвана с объектом Error в качестве первого параметра, если произойдет ошибка.
Пример
var apigee = require('apigee-access'); var cache = apigee.getCache(); cache.remove('key', function(error) { });