Accede a la caché en Node.js

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Puedes usar el módulo apigee-access para acceder a la caché distribuida de Edge desde una aplicación de Node.js. El módulo incluye métodos para obtener una caché y poner, obtener y quitar datos.

La caché distribuida de Apigee Edge te permite almacenar cadenas y otros datos. Como la mayoría de las cachés, es la caché que se usó menos recientemente con un tamaño máximo. Dentro de Apigee Edge, la caché se distribuye entre todos los nodos en los que se ejecuta tu aplicación de Node.js. Puedes administrar la caché a través de una API de Apigee Edge. Con la API, puedes crear recursos de caché de forma manual o puedes usar el recurso predeterminado. Para obtener una introducción al almacenamiento en caché en Apigee Edge, consulta Herramientas de persistencia en Edge. Para obtener más información sobre la caché distribuida, consulta Ejemplo: Almacenamiento en caché de uso general.

Para obtener una introducción al módulo apigee-access y sus otras funciones, consulta Usa el módulo Apigee-access.

Métodos


(1) getCache

var cache = apigee.getCache(cacheName);

Busca una caché con nombre y créala si es necesario. La caché resultante usa un conjunto predefinido de parámetros de configuración adecuados para la mayoría de las situaciones.

Parámetros:

cacheName: una string, el nombre de la caché. (No es el nombre del recurso de caché).

Devuelve:

Un objeto almacenado en caché.

Ejemplo:

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

(2) getCache

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

Accede a un recurso de caché personalizado especificado en un objeto de configuración. Para obtener información sobre cómo crear un recurso de caché, consulta Crea y edita una caché de entorno.

Parámetros:

cacheName: una string, el nombre de la caché personalizada. (No es el nombre del recurso de caché).

options: Un objeto de configuración El objeto puede estar vacío o contener los siguientes parámetros opcionales:

  • resource: Es el nombre de un “recurso de caché” de Apigee en el que se almacenan los datos en caché. Los recursos de caché se usan para ajustar la asignación de memoria y otros parámetros de caché. Si no se especifica, se usará un recurso predeterminado. Si el recurso de caché no existe, el método muestra un error.

  • scope: Especifica si las entradas de caché tienen prefijos para evitar colisiones. Los valores válidos son global, application y exclusive.

    • global: Todas las aplicaciones de Node.js en el mismo “entorno” de Apigee pueden ver todas las entradas de caché.

    • application: Todas las cachés de Node.js que forman parte de la misma aplicación de Apigee Edge pueden ver todas las entradas de caché.

    • exclusive: (Opción predeterminada) Solo las memorias caché de Node.js de la misma aplicación que tienen el mismo nombre ven las entradas de caché. Esta es la opción predeterminada.

  • prefix: Si el nombre de la clave de caché incluye un prefijo, como se describe en Propaga la política de caché y Trabaja con claves de caché, usa este parámetro para especificarlo. Edge agrega automáticamente un sufijo de doble guion bajo al nombre del prefijo. Por lo tanto, si se creó una clave de caché con el prefijo “UserToken”, el prefijo que debes especificar aquí será “UserToken__”.

  • defaultTtl: Especifica el tiempo de actividad predeterminado para una entrada de caché, en segundos. Si no se especifica, se usará el TTL predeterminado del recurso de caché.

  • timeout: Es el tiempo de espera, en segundos, para recuperar un resultado de la caché distribuida. El valor predeterminado de 30 segundos. Es posible que las aplicaciones sensibles a la latencia deseen reducir esto para evitar tiempos de respuesta lentos si la infraestructura de caché está sobrecargada.

Devuelve:

Un objeto de caché personalizado.

Ejemplo:

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

Esto funciona con una política LookupCache configurada de la siguiente manera:

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

put

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

Colocar datos en una caché

Parámetros:

  • key: String que identifica de manera única el elemento en caché (obligatorio). Las claves de caché se limitan a un tamaño de 2 KB.

  • data: (Obligatorio) Es una cadena, un objeto o búfer que representa los datos que se almacenarán en caché. Cualquier otro tipo de datos generará un error. Para mayor comodidad, los objetos se convertirán en una string con “JSON.stringify”.

  • ttl: Es el tiempo máximo, en segundos, para conservar los datos en la caché (opcional). Si no se especifica, se usará un TTL predeterminado.

  • callback: Opcional: Si se especifica, es una función a la que se llamará una vez que los datos estén de forma segura en la caché. Se llamará con un objeto Error como primer parámetro si hay un error de inserción; de lo contrario, se llamará sin parámetros.

Ejemplo:

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
});

obtener

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

Recupera datos de una caché.

Parámetros:

  • key (obligatorio): Es una cadena que identifica de manera única el elemento en caché.

    En el caso de las entradas de caché que se colocan en la caché desde una política de Apigee Edge (como la política de Propagar de caché), deberás construir la clave de caché mediante la inferencia de la forma específica en que la política crea claves para las entradas. Para ello, debes saber cómo se configura la política. Si bien en Trabaja con claves de caché se describe cómo las políticas crean claves de caché, ten en cuenta que no debes especificar valores de string relacionados con el alcance. En las llamadas desde Node.js, el permiso ya es parte del contexto.

  • callback (obligatorio): Es una función a la que se llamará cuando los datos estén disponibles. Si hay datos almacenados en caché, se muestran en el segundo parámetro.

    • error: Es un objeto Error. Si se produce un error durante la recuperación desde la caché, se establecerá un objeto de error aquí. De lo contrario, este parámetro se establecerá como "indefinido".

    • data: los datos recuperados, si los hay. Será uno de cuatro valores:

      • Si se insertó una cadena, será una cadena.
      • Si se insertó un búfer, será uno.
      • Si se insertó un objeto, será una string que contendrá la versión JSON del objeto como la produce “JSON.stringify”.
      • Si no se encuentra nada, será "indefinido".

Ejemplo:

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
});

quitar

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

Invalida un elemento almacenado en caché. Una vez que se invalida una clave, las solicitudes get() posteriores mostrarán un valor "indefinido", a menos que se inserte otro valor.

Parámetros:

  • key (obligatorio): Es una cadena que identifica de forma única el elemento en caché que se debe invalidar.

    En el caso de las entradas de caché que se colocan en la caché desde una política de Apigee Edge (como la política de Propagar de caché), deberás construir la clave de caché mediante la inferencia de la forma específica en que la política crea claves para las entradas. Para ello, debes saber cómo se configura la política. Si bien en Trabaja con claves de caché se describe cómo las políticas crean claves de caché, ten en cuenta que no debes especificar valores de string relacionados con el alcance. En las llamadas desde Node.js, el permiso ya es parte del contexto.

  • callback (obligatorio): Es una función de devolución de llamada a la que se llamará con un objeto Error como primer parámetro si se produce un error.

Ejemplo:

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