Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
En este artículo se explica cómo diagnosticar la pérdida de datos real o percibida que puede producirse en Azure Managed Redis.
Nota:
Algunos pasos de solución de problemas de esta guía incluyen instrucciones para ejecutar comandos de Redis y supervisar las métricas de rendimiento. Para obtener más información, consulte los artículos de Contenido relacionado.
Pérdida parcial de claves
Azure Managed Redis no elimina aleatoriamente las claves después de almacenarlas en memoria. Quita las claves debido a directivas de expiración, directivas de expulsión o comandos explícitos de eliminación de claves. Ejecute estos comandos mediante la CLI. Es posible que las claves escritas en el nodo principal de una instancia de Azure Managed Redis no estén disponibles en una réplica inmediatamente. Los datos se replican de la réplica principal a la réplica de forma asincrónica y sin bloqueo.
Si las claves desaparecen de la memoria caché, compruebe las siguientes causas posibles:
| Causa | Descripción |
|---|---|
| Expiración de la clave | Las claves se quitan debido a los tiempos de espera establecidos en ellas. |
| Expulsión de la clave | Las claves se quitan cuando la memoria es baja. |
| Eliminación de la clave | Los clientes quitan las claves mediante la ejecución de comandos de eliminación explícita. |
| Replicación asincrónica | Las claves no están disponibles en una réplica debido a retrasos en la replicación de datos. |
Expiración de la clave
Azure Managed Redis quita automáticamente una clave cuando se supera el tiempo de espera de esa clave. Para obtener más información sobre la expiración de las claves de Redis, consulte la documentación del comando EXPIRE. También puede establecer valores de tiempo de espera mediante los comandos SET, SETEX, GETSET y otros comandos *STORE .
Para ver cuántas claves han expirado, use el comando INFO . La sección Stats muestra el número total de claves expiradas. En la sección se Keyspace proporciona más información sobre el número de claves con tiempos de espera y el valor medio de tiempo de espera.
# Stats
expired_keys:46583
# Keyspace
db0:keys=3450,expires=2,avg_ttl=91861015336
Compruebe las métricas de diagnóstico de la memoria caché para ver si hay una correlación entre cuando falta la clave y un pico en las claves expulsadas.
Expulsión de la clave
Azure Managed Redis necesita espacio de memoria para almacenar datos. Quita las claves para liberar memoria cuando sea necesario. Cuando los valores used_memory o used_memory_rss del comando INFO se aproximan al valor maxmemory configurado, Azure Managed Redis comienza a expulsar las claves de la memoria en función de la directiva de caché.
Supervise el número de claves expulsadas mediante el comando INFO :
# Stats
evicted_keys:13224
Eliminación de la clave
Los clientes de Redis ejecutan el comando DEL o HDEL para quitar claves de Azure Managed Redis. Realice un seguimiento del número de operaciones de eliminación mediante el comando INFO . Si se ejecutaron comandos DEL o HDEL , se muestran en la Commandstats sección .
# Commandstats
cmdstat_del:calls=2,usec=90,usec_per_call=45.00
cmdstat_hdel:calls=1,usec=47,usec_per_call=47.00
Replicación asincrónica
Al habilitar la alta disponibilidad en Azure Managed Redis, el servicio crea un nodo principal y al menos una réplica. El sistema copia los datos de la réplica principal a la réplica de forma asincrónica mediante un proceso en segundo plano. Consulte la documentación de replicación de Redis para más información.
Dado que la replicación no es instantánea, es posible que experimente una pérdida parcial de datos si los clientes escriben en Redis con frecuencia. Por ejemplo, si se produce un error en el nodo principal después de que un cliente escriba una clave, pero antes de que el proceso en segundo plano lo replique, la clave se pierde cuando la réplica se convierte en la nueva principal.
Pérdida principal o completa de claves
Si la mayoría o todas las claves desaparecen de la memoria caché, compruebe estas posibles causas:
| Causa | Descripción |
|---|---|
| Vaciado de la clave | Alguien purgó las claves manualmente. |
| Error de instancia de Redis | El servidor de Redis no está disponible. |
Vaciado de la clave
Los clientes pueden llamar al comando FLUSHDB o FLUSHALL para quitar todas las claves de la instancia de Redis. Para comprobar si las claves están vacías, use el comando INFO . En la sección se Commandstats muestra si se ejecuta cualquiera de los FLUSH comandos:
# Commandstats
cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00
cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00
Error de instancia de Redis
Redis es un almacén de datos en memoria. Los datos permanecen en las máquinas físicas o virtuales (VM) que hospedan la caché de Redis. Las cachés de Redis administradas de Azure ofrecen una alta resistencia frente a la pérdida de datos al proporcionar cachés resistentes a la zona de forma predeterminada. Cuando se produce un error en la partición principal de esta memoria caché, la partición de réplica toma automáticamente el control de los datos. Estas máquinas virtuales se encuentran en dominios independientes para errores y actualizaciones, lo que minimiza la posibilidad de que ambas no estén disponibles al mismo tiempo. Si se produce una interrupción importante del centro de datos, las máquinas virtuales pueden seguir funcionando juntas. En estos casos poco frecuentes, se pierden los datos.
Use la persistencia de datos de Redis y la replicación geográfica para proteger mejor los datos frente a estos errores de infraestructura.