Accede a la caché en Node.js

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

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

La caché distribuida de Apigee Edge te permite almacenar strings y otros datos. Como la mayoría de las cachés, es una caché que se usó de forma menos reciente 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é con un API de Apigee Edge. Con la API, puedes crear recursos de caché de forma manual o usar 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 acerca de la caché distribuida, consulta Ejemplo: Uso general el almacenamiento en caché.

Para ver una introducción al módulo apigee-access y sus otras funciones, consulta Usar el módulo de 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: Es una cadena, el nombre del la caché. (No es el nombre del recurso de caché).

Muestra:

Un objeto de 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 Para crear un recurso de caché, consulta Crea y edita un entorno caché.

Parámetros:

cacheName: Es una cadena, el nombre del en caché personalizada. (No es el nombre del recurso de caché)

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

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

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

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

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

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

  • prefix: Si el nombre de la clave de caché incluye un prefijo, como se describe en Completar Política de caché y Cómo trabajar con claves de caché, usa este parámetro para especificarlo. Edge agrega automáticamente un sufijo de doble guion bajo al nombre de prefijo. Por lo tanto, si se creó una clave de caché con el prefijo “UserToken”, el prefijo que se debe especificar aquí es "UserToken__".

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

  • timeout: Es el tiempo de espera para recuperar un resultado de la caché distribuida, en segundos. Los 30 segundos predeterminados. Las aplicaciones sensibles a la latencia pueden reducir esto para evitar tiempos de respuesta lentos si la infraestructura de caché sobrecargado.

Muestra:

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>

poner

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

Colocar los datos en una caché

Parámetros:

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

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

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

  • callback: Si se especifica, es una función (opcional) que se llamará una vez que los datos estén seguros 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á con 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 forma única. el elemento en la caché.

    Para las entradas de caché que se colocan en la caché desde una política de Apigee Edge (como Propagar política de caché), puedes deberá construir la clave de caché infiriendo la forma específica en que la política crea claves para las entradas. Para hacerlo, deberás saber cómo está configurada la política. Mientras que Trabaja con claves de caché describe cómo las políticas crean claves de caché; ten en cuenta que no debes valores de cadena relacionados con el alcance; en las llamadas de Node.js, el alcance ya forma parte del adicional.

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

    • error: Un objeto Error. Si se produce un error durante la recuperación desde la caché, se establecerá un objeto Error aquí. De lo contrario, esta se establecerá como "undefined".

    • 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 cadena que contiene la versión JSON del objeto objeto tal como lo 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));

Invalidar un elemento almacenado en caché Una vez que se invalida una clave, se mostrarán las solicitudes get() posteriores “no definido” a menos que se inserte otro.

Parámetros:

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

    Para las entradas de caché que se colocan en la caché desde una política de Apigee Edge (como Propagar política de caché), puedes deberá construir la clave de caché infiriendo la forma específica en que la política crea claves para las entradas. Para hacerlo, deberás saber cómo está configurada la política. Mientras que Trabaja con claves de caché describe cómo las políticas crean claves de caché; ten en cuenta que no debes valores de cadena relacionados con el alcance; en las llamadas de Node.js, el alcance ya forma parte del adicional.

  • callback (obligatorio): Es una función de devolución de llamada que llamarse con un objeto Error como primer parámetro si hay un error.

Ejemplo:

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