Caché API le permite almacenar datos en la caché de los nodos perimetrales para obtener respuestas más rápidas en las solicitudes posteriores. Configure la duración y el tamaño de la caché para controlar las políticas de almacenamiento.
Cómo funciona
La Caché API integrada de Edge Routines (ER) almacena en la caché los datos que procesa ER o que se obtienen del servidor de origen hacia ESA. De este modo, otras solicitudes en el mismo nodo pueden reutilizarlos. Esto reduce los cálculos repetidos y las solicitudes de red. A continuación se muestra la relación entre ER y la caché de ESA:
Estándar de la API
Caché API cumple en la mayor medida posible con la interfaz estándar Cache. Sin embargo, dado que Edge Routines reutiliza el motor de caché existente de ESA, la semántica no es completamente coherente.
Definición de la API
cache.put(request/string, response)
-
Almacena un objeto Response en la caché.
Si put se ejecuta correctamente, se resuelve como undefined.
Si el motor de caché falla, se rechaza con una excepción de error.
Si se excede la cuota del motor de caché, se rechaza con una excepción de error.
La clave de caché se establece con la URL del objeto request o con una cadena de URL. Use URL HTTP. Actualmente, debido al motor de caché de ESA, las URL HTTPS no son compatibles.
Esta es una función asíncrona. Use await para asegurarse de que la operación put haya terminado .
Establezca el encabezado cache-control en el objeto Response para configurar el TTL de la caché (el encabezado cache-control sigue los estándares de caché).
cache.get(request/string)
Recupera un objeto Response mediante el request/string especificado como clave. Si el objeto no existe, se resuelve como undefined.
Esta es una función asíncrona. Use await para asegurarse de que la operación get haya terminado.
Es posible que get no devuelva el objeto que acaba de almacenarse. La caché utiliza el algoritmo LRU y no garantiza que siempre se pueda recuperar el objeto almacenado.
cache.delete(request/string)
-
Elimina un objeto Response con la clave especificada.
Si la eliminación se ejecuta correctamente, se resuelve como true.
Si la eliminación falla, se resuelve como false.
Esta es una función asíncrona. Use await para asegurarse de que la operación delete haya terminado.
Límites de uso
Todas las operaciones de Caché API son subsolicitudes que comparten el límite de subsolicitudes de ER. De forma predeterminada, una sola solicitud de ER admite un máximo de 32 subsolicitudes fetch (este número podría cambiar cuando ER se comercialice). Las operaciones de Caché API comparten este límite con fetch, por lo que la suma total de operaciones cache.put + cache.get + cache.delete + fetch dentro de un mismo contexto de solicitud no puede superar 32.
-
Las funciones cache.put, cache.get y cache.delete cuentan con control de concurrencia. Para la misma URL, si una solicitud ejecuta get mientras otra ejecuta delete, la operación podría devolver un estado pendiente porque varias solicitudes concurrentes modifican la misma clave. En este caso, espere y vuelva a intentarlo.
NotaCuando cache.put, cache.get o cache.delete se rechaza como true, indica que la operación está sujeta al control de concurrencia.
Actualización de la caché
Actualmente, Caché API no es compatible con la actualización activa de la caché. Especifique una duración adecuada mediante el parámetro TTL al llamar a Cache.put().