Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo diagnosticar una pérdida de datos parcial o completa que se produce en Azure Cache for Redis.
Pérdida parcial de clave
Azure Cache for Redis no elimina aleatoriamente las claves después de almacenarlas en la memoria, pero quita las claves en respuesta a las directivas de expiración, las directivas de expulsión y los comandos explícitos de eliminación de claves. Puede ejecutar estos comandos en la consola o a través de la CLI de Redis.
Es posible que las claves escritas en el nodo principal de una instancia de Azure Redis Premium o Estándar 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 algunas claves desaparecen de la memoria caché, compruebe las siguientes causas posibles:
Causa | Descripción |
---|---|
Expiración de la clave | Las claves se quitaron debido a los tiempos de espera establecidos en ellas. |
Expulsión de la clave | Las claves se quitaron bajo presión de memoria. |
Eliminación de la clave | Las claves fueron quitadas por comandos de eliminación explícitos. |
Replicación asincrónica | Las claves no estaban disponibles en una réplica debido a retrasos en la replicación de datos. |
Expiración de la clave
Azure Cache for Redis quita automáticamente una clave si se le asigna un tiempo de espera y ese período pasa. Para obtener más información sobre la expiración de claves de Redis, consulte la documentación del comando EXPIRE de Redis. Los valores de tiempo de espera también se pueden establecer mediante set,SETEX, GETSET y otros *STORE
comandos.
Para obtener estadísticas sobre el número de claves que 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 espera y el valor promedio del tiempo de espera.
# Stats
expired_keys:46583
# Keyspace
db0:keys=3450,expires=2,avg_ttl=91861015336
Expulsión de la clave
Azure Cache for Redis requiere espacio de memoria para almacenar datos y purga las claves para liberar memoria disponible cuando sea necesario. Cuando los valores de used_memory
o used_memory_rss
se aproximan al ajuste configurado de maxmemory
, Azure 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 mediante el comando INFO .
# Stats
evicted_keys:13224
Eliminación de la clave
Los clientes de Redis pueden emitir los comandos DEL o HDEL de Redis para quitar explícitamente las claves de Azure Redis. Puede realizar un seguimiento del número de operaciones de eliminación mediante el comando INFO. Si se llamaron comandos DEL
o HDEL
, se enumeran 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
Las instancias de Azure Cache for Redis de nivel Estándar o Premium están configuradas 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.
La replicación de Redis en el sitio web de Redis describe cómo funciona la replicación de datos de Redis en general. En escenarios en los que los clientes escriben en Redis con frecuencia, se puede producir una pérdida parcial de datos porque la replicación no está diseñada para ser instantánea.
Por ejemplo, si la principal deja de funcionar después de que un cliente escribe una clave en ella, pero antes de que el proceso en segundo plano tenga la oportunidad de enviar esa clave a la réplica, la clave se pierde cuando la réplica toma el control como la nueva principal.
Pérdida de clave completa
Si la mayoría o todas las claves desaparecen de la memoria caché, compruebe las siguientes causas posibles:
Causa | Descripción |
---|---|
Vaciado de la clave | Las claves se purgaron manualmente. |
Selección incorrecta de la base de datos | Azure Redis se establece para usar una base de datos no predeterminada. |
Error de instancia de Redis | El servidor de Redis no está disponible. |
Vaciado de la clave
Los clientes de Azure Redis pueden llamar al comando FLUSHDB de Redis para quitar todas las claves de una base de datos única o FLUSHALL para quitar todas las claves de todas las bases de datos de una caché de Redis. Para averiguar si se han vaciado las claves, use el comando INFO. En la sección Commandstats
se muestra si se llamó a cualquiera del 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
Selección incorrecta de la base de datos
Cada base de datos es una unidad independiente lógicamente y contiene un conjunto de datos diferente. Azure Cache for Redis utiliza la base de datos db0
de manera predeterminada. Si cambia a otra base de datos, como db1
e intenta leer claves de ella, Azure Redis no las encuentra. Use el comando SELECT de Redis para buscar claves en otras bases de datos disponibles.
Error de instancia de Redis
Redis mantiene los datos en memoria en las máquinas virtuales o físicas que hospedan la caché de Redis. Una instancia de Azure Cache for Redis de nivel básico solo se ejecuta en una sola máquina virtual (VM). Si esa máquina virtual deja de funcionar, se perderán todos los datos almacenados en la memoria caché.
Las memorias caché en los niveles Estándar y Premium ofrecen una mayor resistencia frente a la pérdida de datos mediante dos máquinas virtuales en una configuración replicada. Cuando se produce un error en el nodo principal de dicha caché, el nodo de réplica se encarga de servir los datos automáticamente.
Estas máquinas virtuales se encuentran en dominios independientes para errores y actualizaciones, para minimizar la posibilidad de que ambas máquinas virtuales no estén disponibles a la vez. Sin embargo, si se produce una interrupción importante del centro de datos, ambas máquinas virtuales podrían dejar de funcionar. En estos casos poco frecuentes, los datos se pierden. Considere la posibilidad de usar la persistencia de datos y la replicación geográfica para mejorar la protección de datos frente a errores de infraestructura.