Antipatrón: almacenar en caché datos de más de 256 KB
Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Apigee ofrece la posibilidad de almacenar datos en una caché en tiempo de ejecución para que se conserven y se puedan recuperar más rápido.
Los datos se almacenan inicialmente en la caché en memoria del procesador de mensajes, denominada caché de nivel 1.
La caché de nivel 1 está limitada por la cantidad de memoria reservada para ella como porcentaje de la memoria de la JVM.
Las entradas almacenadas en caché se conservan más adelante en la caché de nivel 2, a la que pueden acceder todos los procesadores de mensajes. Encontrarás más detalles en la sección de abajo.
La caché de nivel 2 no tiene ningún límite estricto en el número de entradas de caché, pero el tamaño máximo de la entrada que se puede almacenar en caché está limitado a 256 KB.
El tamaño de caché de 256 KB es el recomendado para obtener un rendimiento óptimo.
Antipatrón
Este antipatrón en concreto trata sobre las implicaciones de superar las restricciones de tamaño de caché actuales en Apigee.
Cuando se almacenan en caché datos de más de 256 KB, las consecuencias son las siguientes:
Las solicitudes de API que se ejecutan por primera vez en cada uno de los procesadores de mensajes deben obtener los datos de forma independiente de la fuente original (una política o un servidor de destino), ya que las entradas >
256 KB
no están disponibles en la caché de nivel 2.
Almacenar datos de mayor tamaño (> 256 KB) en la caché de nivel 1 suele ejercer más presión sobre los recursos de la plataforma. Esto provoca que la memoria caché de nivel 1 se llene más rápido y, por lo tanto, haya menos espacio disponible para otros datos. Por lo tanto, no se podrán almacenar en caché los datos de forma tan agresiva como se quiera.
Las entradas almacenadas en caché de los procesadores de mensajes se eliminarán cuando se alcance el límite del número de entradas. De esta forma, los datos se vuelven a obtener de la fuente original en los procesadores de mensajes correspondientes.
Impacto
Los datos de tamaño superior a 256 KB no se almacenarán en la caché persistente o de nivel 2.
Si se llama con más frecuencia a la fuente original (una política o un servidor de destino), se producirán latencias mayores en las solicitudes de la API.
Práctica recomendada
Es preferible almacenar en caché datos de tamaño inferior a 256 KB para obtener un rendimiento óptimo.
Si necesitas almacenar datos de más de 256 KB, ten en cuenta lo siguiente:
Usar cualquier base de datos adecuada para almacenar grandes cantidades de datos
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)."],[[["\u003cp\u003eApigee uses a two-tiered caching system (L1 and L2) to store data for persistence and faster retrieval, with L1 being an in-memory cache and L2 being a persistent cache accessible to all Message Processors.\u003c/p\u003e\n"],["\u003cp\u003eThe L2 cache has a size limit of 256 KB per entry for optimal performance, and exceeding this limit results in the data not being stored in L2.\u003c/p\u003e\n"],["\u003cp\u003eCaching data larger than 256 KB causes API requests to fetch data independently from the original source on each Message Processor, and it also stresses the L1 cache, leading to less space available for other data.\u003c/p\u003e\n"],["\u003cp\u003eStoring data under 256 KB is the preferred practice for optimal caching performance, and for data exceeding this size, consider using a database or compressing the data.\u003c/p\u003e\n"],["\u003cp\u003eExceeding the cache size limit increases the frequency of calls to the original source and results in higher API request latency.\u003c/p\u003e\n"]]],[],null,["# Antipattern: Store data greater than 256 KB size in cache\n\n*You're viewing **Apigee** and **Apigee hybrid** documentation.\nView [Apigee Edge](https://docs.apigee.com/api-platform/antipatterns/caching-large) documentation.*\n\nApigee provides the ability to store data in a cache at runtime for persistence and faster\nretrieval.\n\n- The data is initially stored in the Message Processor's in-memory cache, referred to as *L1\n cache*.\n- The L1 cache is limited by the amount of memory reserved for it as a percentage of the JVM memory.\n- The cached entries are later persisted in *L2 cache*, which is accessible to all Message Processors. More details can be found in the section below.\n- The L2 cache does not have any hard limit on the number of cache entries, however the maximum *size* of the entry that can be cached is restricted to 256 KB. The cache size of 256 KB is the recommended size for optimal performance.\n\nAntipattern\n-----------\n\nThis particular antipattern talks about the implications of exceeding the current cache size\nrestrictions within Apigee.\n\nWhen data \\\u003e 256 KB is cached, the consequences are as follows:\n\n- API requests executed for the first time on each of the Message Processors need to get the data independently from the original source (policy or a target server), as entries \\\u003e 256 KB are not available in L2 cache.\n- Storing larger data (\\\u003e 256 KB) in L1 cache tends to put more stress on the platform resources. It results in the L1 cache memory being filled up faster and hence lesser space being available for other data. As a consequence, one will not be able to cache the data as aggressively as one would like to.\n- Cached entries from the Message Processors will be removed when the limit on the number of entries is reached. This causes the data to be fetched from the original source again on the respective Message Processors.\n\nImpact\n------\n\n- Data of size \\\u003e 256 KB will not be stored in L2/persistent cache.\n- More frequent calls to the original source (either a policy or a target server) leads to increased latencies for the API requests.\n\nBest practice\n-------------\n\n- It is preferred to store data of size \\\u003c 256 KB in cache to get optimum performance.\n- If there's a need to store data \\\u003e 256 KB, then consider:\n - Using any appropriate database for storing large data **OR**\n\n - Compressing the data\n\nFurther reading\n---------------\n\n- [Cache internals](/apigee/docs/api-platform/cache/cache-internals)"]]