Quiero solucionar el error READONLY que recibo tras una conmutación por error en mi clúster de diseño propio de Amazon ElastiCache para Redis.
Breve descripción
Si el nodo principal conmuta por error a los nodos de réplica del clúster de diseño propio de ElastiCache, el nodo de réplica se convierte en el nodo principal. Esto permite atender las solicitudes entrantes. El error READONLY se produce cuando utiliza un punto de enlace de nodo en lugar del punto de enlace principal del clúster en su aplicación. Además, este error se produce cuando el almacenamiento en caché de DNS en la aplicación enruta el tráfico al nodo principal anterior.
Resolución
Para solucionar el error READONLY en su clúster de diseño propio de ElastiCache para Redis que tiene el modo de clúster desactivado, siga estos pasos:
Cómo comprobar que el modo de clúster esté desactivado
Abra la consola de ElastiCache, a continuación, seleccione clústeres de Redis. Compruebe que Modo de clúster del clúster esté desactivado. Para obtener más información, consulte Estoy usando ElastiCache para Redis. ¿Por qué las solicitudes de lectura de mi cliente Redis siempre se leen o se redirigen al nodo principal de un fragmento?
Cómo comprobar el punto de enlace
Asegúrese de que se utilice el punto de enlace principal y no el punto de enlace del nodo. Para comprobar que los comandos de escritura vayan al nodo principal, utilice uno de los métodos siguientes:
Uso de redis-cli
-
Utilice redis-cli en el punto de enlace principal para conectarse al clúster.
-
Establezca una clave y, a continuación, léala.
Ejemplo:
set key1 "hello"
OK
-
Confirme que la clave se haya configurado correctamente.
Ejemplo:
get key1
"hello"
Cómo comprobar la configuración de DNS
Para evitar problemas de almacenamiento en caché de DNS, active la lógica de reintentos en su aplicación. Asegúrese de seguir las directrices de la biblioteca cliente de Redis que utilice.
Compruebe los comandos entrantes
Para comprobar los comandos entrantes, utilice el comando MONITOR. Para obtener más información, consulte MONITOR en el sitio web de Redis. Para activar MONITOR, conéctese al clúster con redis-cli. El comando MONITOR muestra todos los comandos entrantes al nodo del clúster.
Nota: El comando MONITOR es un comando que consume muchos recursos y puede reducir considerablemente el rendimiento de los nodos. Utilice este comando como última opción para solucionar problemas.