Las claves grandes y las claves activas pueden degradar el rendimiento del servicio, provocar tiempos de espera en las solicitudes o incluso causar fallos en el sistema. Este tema describe cómo encontrar y optimizar rápidamente las claves grandes y activas. También analiza sus causas y efectos, y proporciona medidas preventivas para reducir su impacto en su negocio.
Paso 1: Encontrar rápidamente claves grandes y activas
Herramientas de la consola de Alibaba Cloud
Tair y Redis ofrecen las funciones Top Key Statistics y Offline Full Key Analysis en la consola para ayudarle a encontrar rápidamente claves grandes y activas.
Método | Límites | Descripción | Procedimiento |
Top Key Statistics (Recomendado) | Esta función solo es compatible con Redis Open-Source Edition 5.0 o posterior, y con instancias de memoria optimizada y memoria persistente de Tair (Enterprise Edition). |
|
|
Esta función no es compatible con instancias basadas en disco. |
|
Si su instancia no admite estas funciones, utilice los siguientes métodos.
Otros métodos para encontrar claves grandes y activas
Paso 2: Optimizar claves grandes y activas
Claves grandes
Solución | Escenarios | Acciones recomendadas |
Limpieza de datos caducados | Se ha acumulado una gran cantidad de datos caducados, como datos incrementales sin limpiar en un HASH. | Use el comando HSCAN junto con el comando HDEL para limpiar datos no válidos. Esto evita que la instancia se bloquee, lo cual puede ocurrir si limpia una gran cantidad de datos a la vez. |
Compresión de claves grandes | Datos comprimibles como texto JSON y XML, incluidos registros y configuraciones. |
Nota Las operaciones de compresión y descompresión consumen recursos adicionales de CPU y pueden afectar al rendimiento de procesamiento. |
División de claves grandes | Estructuras de datos HASH, ZSET y otras a las que se accede frecuentemente, como tablas de clasificación. |
La división de claves grandes puede prevenir eficazmente la dispersión de datos. |
Descarga de claves grandes | Archivos grandes u objetos binarios grandes (BLOB) de tipo String. | Almacene datos inadecuados en otros sistemas de almacenamiento, como OSS, y elimínelos de la instancia.
|
Claves activas
Solución | Escenarios | Acciones recomendadas |
Replicación de claves activas en una arquitectura de clúster | Una clave activa se almacena completa en un solo shard y las solicitudes no se pueden distribuir migrando datos parciales. | Copie la clave activa y migre las réplicas a otros shards de datos. Por ejemplo, copie una clave activa llamada Nota La desventaja de esta solución es que debe modificar su código para mantener varias réplicas, y es difícil garantizar la consistencia de los datos entre ellas. Por ejemplo, una operación de actualización debe sincronizarse en todas las réplicas. Utilice esta solución como medida temporal para mitigar problemas urgentes. |
Cargas de trabajo con muchas lecturas y pocas escrituras | Si la carga de solicitudes de lectura sigue siendo alta después de habilitar esta función, agregue más nodos de solo lectura para aliviar aún más la carga. Nota En escenarios con volúmenes de solicitudes extremadamente altos, la sincronización primaria/secundaria tendrá inevitablemente latencia, lo que puede provocar la lectura de datos obsoletos. Por lo tanto, no habilite la división de lectura/escritura en escenarios con alta presión de lectura y escritura y requisitos estrictos de consistencia de datos. |
Paso 3: Evitar que las claves grandes y activas afecten a su negocio
Causas de las claves grandes y activas
En Tair y Redis, la unidad mínima para la distribución de datos es una clave. Una sola clave se almacena en un shard de datos específico y no se divide. Factores como una planificación insuficiente del negocio, la acumulación de datos no válidos y aumentos repentinos en el volumen de acceso pueden provocar la generación de claves grandes y activas en una instancia. Algunos ejemplos incluyen a continuación:
Categoría | Causa |
Clave grande |
|
Clave activa |
|
Efectos de las claves grandes y activas
Categoría | Efecto |
Clave grande |
|
Clave activa |
|
Estrategias de prevención
|
Estrategia |
Descripción |
|
Establezca umbrales de alerta razonables para métricas como uso de CPU, uso de memoria y Connections. Por ejemplo, configure una alerta para cuando el uso de memoria supere el 70 % o cuando la memoria crezca más del 20 % en una hora. Cuando se active una alerta, siga las instrucciones del Paso 1 y el Paso 2 de este tema para localizar y optimizar claves grandes y activas. Esto resuelve el problema antes de que afecte a su negocio. |
|
|
Uso de Tair (Enterprise Edition) para evitar la limpieza de datos no válidos |
Para escenarios que involucran claves grandes de tipo hash, Tair (Enterprise Edition) proporciona una estructura de datos mejorada, TairHash. Admite la configuración de un tiempo de caducidad y una versión para cada campo. Al usar TairHash correctamente, puede reducir significativamente la carga operativa, simplificar la complejidad del código de negocio y manejar eficazmente los problemas causados por claves grandes y activas. |