Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
El tiempo de espera exponencial es una estrategia de gestión de errores estándar para las aplicaciones de red en la que un cliente vuelve a intentar periódicamente una solicitud fallida con retrasos cada vez mayores entre las solicitudes. Los clientes deben usar un tiempo de espera exponencial para todas las solicitudes a Memorystore para Redis que devuelvan errores con los códigos de respuesta HTTP 5xx y 429.
Es importante que sepas cómo funciona la retirada exponencial si:
Crear aplicaciones cliente que usen directamente la API REST de Memorystore para Redis.
Si usas la Google Cloud consola, esta envía solicitudes a Memorystore para Redis en tu nombre y gestiona cualquier retroceso necesario.
Algoritmo de ejemplo
Un algoritmo de espera exponencial vuelve a intentar enviar las solicitudes de forma exponencial, lo que aumenta el tiempo de espera entre reintentos hasta un tiempo de espera máximo. Por ejemplo:
Haz una solicitud a Memorystore para Redis.
Si la solicitud falla, espera 1 + random_number_milliseconds segundos y vuelve a intentarlo.
Si la solicitud falla, espera 2 + random_number_milliseconds segundos y vuelve a intentarla.
Si la solicitud falla, espera 4 + random_number_milliseconds segundos y vuelve a intentarlo.
Y así sucesivamente, hasta maximum_backoff veces.
Sigue esperando y reintentando hasta alcanzar un número máximo de reintentos, pero no aumentes el periodo de espera entre reintentos.
donde:
El tiempo de espera es min(((2^n)+random_number_milliseconds), maximum_backoff),
con n incrementado en 1 en cada iteración (solicitud).
random_number_milliseconds es un número aleatorio de milisegundos inferior o igual a 1000. De esta forma, se evitan los casos en los que muchos clientes se sincronizan por alguna situación y todos vuelven a intentarlo a la vez, enviando solicitudes en oleadas sincronizadas. El valor de random_number_milliseconds debe recalcularse después de cada solicitud de reintento.
maximum_backoff suele ser de 32 o 64 segundos. El valor adecuado depende del caso práctico.
Puedes seguir intentándolo una vez que alcances el tiempo de maximum_backoff.
Los reintentos posteriores a este punto no tienen que seguir aumentando el tiempo de espera. Por ejemplo, si un cliente usa un maximum_backoff de 64 segundos, cuando alcance este valor, podrá volver a intentarlo cada 64 segundos. En algún momento, se debe impedir que los clientes vuelvan a intentarlo indefinidamente.
El tiempo de espera máximo y el número máximo de reintentos que usa un cliente dependen del caso práctico y de las condiciones de la red. Por ejemplo, es posible que los clientes móviles de una aplicación tengan que reintentar la operación más veces y durante intervalos más largos que los clientes de escritorio de la misma aplicación.
Si las solicitudes de reintento fallan después de superar el número máximo de reintentos, informa o registra un error mediante uno de los métodos que se indican en Obtener asistencia.
[[["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-10 (UTC)."],[],[],null,["# Exponential backoff\n\n[Exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff) is a standard error handling\nstrategy for network applications in which a client periodically retries a\nfailed request with increasing delays between requests. Clients should use\nexponential backoff for all requests to Memorystore for Redis that return\nHTTP `5xx` and `429` response code errors.\n\nUnderstanding how exponential backoff works is important if you are:\n\n- Building client applications that use the Memorystore for Redis [REST API](/memorystore/docs/redis/reference/rest)\n directly.\n\n- Accessing Memorystore for Redis through a [client library](/memorystore/docs/redis/libraries).\n Note that some client libraries, such as the [Memorystore for Redis Client Library for Node.js](https://googleapis.dev/nodejs/redis/latest/index.html),\n have built-in exponential backoff.\n\nIf you are using the [Google Cloud console](https://console.cloud.google.com/), the console sends\nrequests to Memorystore for Redis on your behalf and handles any necessary\nbackoff.\n\nExample algorithm\n-----------------\n\nAn exponential backoff algorithm retries requests exponentially,\nincreasing the waiting time between retries up to a maximum backoff time. An\nexample is:\n\n1. Make a request to Memorystore for Redis.\n\n2. If the request fails, wait 1 + `random_number_milliseconds` seconds and retry\n the request.\n\n3. If the request fails, wait 2 + `random_number_milliseconds` seconds and retry\n the request.\n\n4. If the request fails, wait 4 + `random_number_milliseconds` seconds and retry\n the request.\n\n5. And so on, up to a `maximum_backoff` time.\n\n6. Continue waiting and retrying up to some maximum number of retries, but\n do not increase the wait period between retries.\n\nwhere:\n\n- The wait time is min(((2\\^`n`)+`random_number_milliseconds`), `maximum_backoff`),\n with `n` incremented by 1 for each iteration (request).\n\n- `random_number_milliseconds` is a random number of milliseconds less than or\n equal to 1000. This helps to avoid cases where many clients get synchronized by\n some situation and all retry at once, sending requests in synchronized\n waves. The value of `random_number_milliseconds` should be recalculated after\n each retry request.\n\n- `maximum_backoff` is typically 32 or 64 seconds. The appropriate value\n depends on the use case.\n\nIt's okay to continue retrying once you reach the `maximum_backoff` time.\nRetries after this point do not need to continue increasing backoff time. For\nexample, if a client uses an `maximum_backoff` time of 64 seconds, then after\nreaching this value, the client can retry every 64 seconds. At some point,\nclients should be prevented from retrying infinitely.\n\nThe maximum backoff and maximum number of retries that a client uses\ndepends on the use case and network conditions. For example, mobile\nclients of an application may need to retry more times and for longer intervals\nwhen compared to desktop clients of the same application.\n\nIf the retry requests fail after exceeding the maximum number of retries, report\nor log an error using one of the methods listed under [Getting support](/memorystore/docs/redis/getting-support)."]]