En esta página se ofrecen directrices para usar Memorystore para Redis de forma óptima. En esta página también se indican los posibles problemas que debes evitar.
Para ver una lista de posibles problemas, consulta Solución de problemas.
Exportación de RDB
Cuando exportes una copia de seguridad RDB, sigue estas directrices:
- Exportar durante un periodo de baja velocidad de escritura.
- Si exportas datos durante un periodo de alta tasa de escritura, reduce temporalmente
maxmemory
la configuración al 50% de la capacidad de la instancia para proporcionar suficiente sobrecarga para que la operación se realice correctamente.
Operaciones que consumen muchos recursos
En las instancias de Redis de nivel Estándar, las siguientes operaciones usan memoria adicional durante la operación:
- Actualización de versión
- Aumentar o reducir la escala
- Conmutación por error manual
- Importar o exportar
La actualización de la versión, el escalado y la conmutación por error manual usan memoria adicional (en el caso de las instancias de nivel Estándar) debido a la replicación. Estas operaciones siguen el proceso de replicación descrito en Comportamiento de la actualización de instancias del nivel Estándar.
Las operaciones de importación y exportación requieren memoria adicional debido al proceso de Redis bifurcado y a la gestión de datos de copia al escribir asociada a estas operaciones.
Para mitigar los inconvenientes de las operaciones que consumen muchos recursos, debes hacer lo siguiente:
- Reduce la configuración maxmemory al 80% de la capacidad de la instancia durante la operación. Esto proporciona suficiente margen para que la operación se realice correctamente.
- Monitoriza la métrica de la proporción de uso de la memoria del sistema y asegúrate de que sea inferior al 80% antes de ejecutar una de estas operaciones.
- Realiza estas operaciones durante los periodos de poco tráfico de instancias (por ejemplo, por la noche o durante el fin de semana).
- Implementa una lógica de reintentos con un tiempo de espera exponencial antes de ejecutar estas operaciones.
Operaciones y situaciones que requieren reintentar la conexión
Las siguientes operaciones y situaciones interrumpen la conexión de red entre tu red y la instancia de Redis:
- Actualización de versión
- Aumentar o reducir la escala
- Importar
- Conmutación por error manual
- Mantenimiento del sistema
- Rotación de la autoridad de certificación para las instancias de Redis que tienen habilitado el encriptado en tránsito
- Conmutación por error de emergencia
Estas operaciones modifican tu instancia, por lo que se requiere una interrupción temporal de la conexión. Debes implementar una lógica de reintento con retroceso exponencial antes de ejecutar estas operaciones para que tu aplicación se vuelva a conectar automáticamente y siga funcionando con normalidad.
Mantenimiento rutinario
Las instancias de Memorystore para Redis se someten a mantenimiento periódicamente. Para obtener más información, consulta la política de mantenimiento de Memorystore para Redis.
Implementa las siguientes prácticas recomendadas para estar preparado para el mantenimiento rutinario:
- Define una ventana de mantenimiento para que se realicen las actualizaciones de mantenimiento.
- Programa ventanas de mantenimiento para las horas en las que el tráfico de instancias sea bajo y haya suficiente sobrecarga de memoria. Para obtener más información, consulta Impacto de las actualizaciones de mantenimiento.
- Activa las notificaciones de las ventanas de mantenimiento para recibir alertas sobre el mantenimiento programado.
- Implementa una lógica de reintentos con un tiempo de espera exponencial.
- En las instancias de nivel Estándar, puedes simular un evento de mantenimiento mediante la conmutación por error manual para ver cómo afecta a tu aplicación la conmutación por error causada por el mantenimiento.
- En las instancias de nivel básico, puedes simular el impacto de una actualización de mantenimiento escalando temporalmente la instancia a un tamaño mayor. Una vez que hayas observado el impacto, puedes volver al tamaño original.
Gestión de la memoria
La gestión de la memoria puede ser complicada debido a la conocida fragmentación de la memoria
que se produce con Redis de código abierto. Te recomendamos que reduzcas la configuración de maxmemory
de tu instancia para tener margen en caso de que haya mucha presión de memoria.
La mejor forma de monitorizar la presión de la memoria en tu instancia de Memorystore es usar la métrica Ratio de uso de memoria del sistema. Para obtener una guía más detallada sobre cómo gestionar la memoria de Memorystore para Redis, consulta las prácticas recomendadas para la gestión de memoria.
Gestionar conexiones inactivas
Con el tiempo, es posible que el número de conexiones a tu instancia de Memorystore aumente si las conexiones no se terminan correctamente. Esto puede tener consecuencias negativas en el rendimiento, sobre todo si usas el cifrado en tránsito, que impone límites máximos de conexiones en función de tu nivel de capacidad. Para mitigar este problema, te recomendamos que utilices el
timeout
parámetro de configuración de Redis
que te permite definir el número de segundos que deben transcurrir antes de que se
terminen automáticamente las conexiones de cliente inactivas.
Nombres de recursos de Transparencia de acceso
Los datos sensibles no deben almacenarse en nombres de recursos de Memorystore para Redis. Por nombres de recursos, nos referimos a los nombres de las instancias de Memorystore para Redis y a los metadatos de las instancias, como las etiquetas. No se garantiza que los datos almacenados en nombres de recursos estén protegidos por Google Cloud Transparencia de acceso y pueden no cumplir los requisitos de Transparencia de acceso de tu organización.
Se necesita un conector de Acceso a VPC sin servidor para algunos entornos sin servidor
Algunos entornos sin servidor requieren un conector de Acceso a VPC sin servidor para conectarse a Memorystore for Redis. Configura el conector de acceso a VPC sin servidor de tu proyecto si quieres conectarte mediante uno de estos entornos.
Redes
Te recomendamos que uses el modo de conexión Acceso a servicios privados. Memorystore para Redis usa dos modos de conexión: acceso a servicios privados y emparejamiento directo. El modo de conexión de acceso a servicios privados simplifica la gestión de intervalos de IP y te permite usar una VPC compartida si quieres.
Una vez que haya creado una instancia, no podrá cambiar el modo de conexión.
Para obtener más información, consulta Redes.
Monitorización y alertas
Te recomendamos que uses la monitorización y las alertas porque te proporcionan señales clave sobre el uso de memoria de tu instancia de Redis. También te ofrecen información sobre la eficiencia con la que tu instancia de Redis responde a las solicitudes de caché entrantes.
Deberías configurar las siguientes alertas predeterminadas:
- Configurar una alerta de Cloud Monitoring para el uso de memoria
- Configurar una alerta de Cloud Monitoring para la métrica "Ratio de uso de memoria del sistema"
Prácticas recomendadas para el uso de la CPU
El uso inadecuado de comandos de Redis caros provoca una latencia alta, falta de respuesta o problemas de conectividad. Las instancias del nivel estándar ofrecen alta disponibilidad durante la recuperación tras fallos y se basan en la replicación asíncrona entre los nodos principal y de réplica. Si uno de los nodos tiene un procesamiento de comandos costoso que bloquea el hilo principal de Redis, la replicación podría verse afectada. Si el problema persiste y se produce una interrupción en una ubicación, es posible que los datos más recientes escritos en la ubicación de la interrupción no estén disponibles en la otra ubicación.
Te recomendamos que uses Cloud Monitoring
para definir alertas para la métrica Segundos de CPU del hilo principal
(redis.googleapis.com/stats/cpu_utilization_main_thread
) y asegurarte de que el uso de la CPU no supere los 0,8 segundos en el nodo principal ni los 0,5 segundos
en cada nodo de réplica cuando la réplica se designe como réplica de lectura.
Si tu instancia de Redis supera los valores recomendados, te recomendamos que escales la instancia a un nivel de capacidad superior o que sigas las instrucciones para solucionar problemas para evitar operaciones que consuman muchos recursos de CPU.