Compartir vía


Solución de problemas de pérdida de datos en Azure Managed Redis (versión preliminar)

En este artículo se describe cómo diagnosticar pérdidas de datos reales o percibidas que se pueden producir en Azure Managed Redis (versión preliminar).

Nota

Algunos de los pasos de solución de problemas de esta guía incluyen instrucciones para ejecutar comandos de Redis y supervisar diversas métricas de rendimiento. Para más información e instrucciones, consulte los artículos de la sección Información adicional .

Pérdida parcial de claves

Azure Managed Redis no elimina aleatoriamente las claves una vez que se han almacenado en la memoria. Pero sí quita las claves en respuesta a las directivas de expiración o expulsión, así como a los comandos de eliminación de claves explícita. Puede ejecutar estos comandos a través de la CLI.

Es posible que las claves escritas en el nodo principal de una instancia de Azure Managed Redis tampoco estén disponibles en una réplica inmediatamente. Los datos se replican desde el principal a la réplica de forma asincrónica y sin bloqueo.

Si observa que las claves han desaparecido de la 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.
Expulsión de la clave Las claves se quitan en la presión de memoria.
Eliminación de la clave Las claves se quitan mediante comandos de eliminación explícita.
Replicación asincrónica Las claves no están disponibles en una réplica debido a retrasos de replicación de datos.

Expiración de la clave

Azure Managed Redis quita automáticamente una clave si se le asigna un tiempo de espera y se ha superado ese período. Para obtener más información sobre la expiración de las claves de Redis, consulte la documentación del comando EXPIRE. Los valores de tiempo de espera también se pueden establecer mediante los comandos SET, SETEX, GETSET y otros comandos *STORE.

Para obtener estadísticas sobre cuántas claves han expirado, use el comando INFO. La sección Stats muestra el número total de claves expiradas. La sección Keyspace proporciona más información sobre el número de claves con tiempos de expiración y el valor de tiempo de expiración promedio.


# Stats

expired_keys:46583

# Keyspace

db0:keys=3450,expires=2,avg_ttl=91861015336

También puede consultar las métricas de diagnóstico de la memoria caché para ver si hay una correlación entre el momento en que falta la clave y un pico en las claves expiradas. Vea el Anexo de Depuración de errores de espacios de claves de Redis para obtener información sobre el uso de notificaciones keyspace o MONITOR para depurar estos tipos de problemas.

Expulsión de la clave

Azure Managed Redis requiere espacio en memoria para almacenar datos. Purga las claves para liberar memoria disponible 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é.

Puede supervisar el número de claves expulsadas con el comando INFO:

# Stats

evicted_keys:13224

También puede consultar las métricas de diagnóstico de la memoria caché para ver si hay una correlación entre el momento en que falta la clave y un pico en las claves expulsadas. Consulte el Anexo de Depuración de errores de espacios de claves para obtener información sobre el uso de notificaciones de espacio de claves o MONITOR para depurar este tipo de problemas.

Eliminación de la clave

Los clientes de Redis pueden emitir el comando DEL o HDEL para quitar claves de Azure Managed Redis explícitamente. Puede realizar un seguimiento del número de operaciones de eliminación mediante el comando INFO. Si se ha llamado a los comandos DEL o HDEL, aparecerán en la sección Commandstats.

# 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

Cualquier instancia de Azure Managed Redis con alta disponibilidad habilitada está configurada con un nodo principal y al menos una réplica. Los datos se copian desde el principal a una réplica de forma asincrónica mediante un proceso en segundo plano. En el sitio web redis.io se describe cómo funciona la replicación de datos de Redis en general. En los escenarios en los que los clientes escriben en Redis con frecuencia, se puede producir una pérdida parcial de datos porque no se garantiza que la replicación sea instantánea. Por ejemplo, si el principal deja de estar disponible después de que un cliente escriba una clave en él pero antes de que el proceso en segundo plano tenga ocasión de enviar esta clave a la réplica, la clave se perderá cuando la réplica tome el control como nuevo principal.

Pérdida principal o completa de claves

Si todas las claves o la mayoría de estas han desaparecido de la caché, compruebe las siguientes causas posibles:

Causa Descripción
Vaciado de la clave Las claves se han purgado 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 averiguar si las claves se han vaciado, use el comando INFO. En la sección Commandstats se muestra si se ha llamado al comando FLUSH:

# 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 se mantienen en las máquinas físicas o virtuales 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 zonas de forma predeterminada. Cuando se produce un error en la partición principal de dicha memoria caché, la partición de réplica toma el control de los datos automáticamente. Estas máquinas virtuales se encuentran en dominios de errores y actualizaciones independientes para minimizar la posibilidad de que ambas no estén disponibles al mismo tiempo. Aunque, si se produce una interrupción importante del centro de datos, las máquinas virtuales pueden dejar de estar disponibles a la vez. Los datos se perderán en estos casos excepcionales.

Considere la posibilidad de utilizar Permanencia de datos de Redis y replicación geográfica para mejorar la protección de sus datos contra estos fallos de infraestructura.

Información adicional

En estos artículos se proporciona más información sobre cómo evitar la pérdida de datos: