Conexión a un cluster de OCI Cache

OCI Cache proporciona acceso a un cluster a través de un punto final privado.

Con los puntos finales privados, el tráfico no se realiza a través de Internet. Solo puede conectarse al cluster desde un cliente de la misma VCN que el cluster u otra VCN con gateways y reglas de ruta adecuados configurados.

Advertencia

El comandoKEYS no se admite para uso regular en entornos de producción, sino que está destinado solo para depuración y operaciones especiales. Cuando envía el comando KEYS a un cluster, es posible que el cluster experimente un bloqueo o una degradación del rendimiento.

Para buscar claves en un subjuego del espacio de claves, utilice el comando SCAN o un tipo de datos de conjuntos en su lugar.

Limitaciones y consideraciones

  • Solo puede conectarse a los nodos de un cluster mediante los nombres de dominio completos (FQDN) proporcionados por el servicio. Para los clusters no con particiones horizontales, los FQDN son para los puntos finales privados en los nodos principal o de réplica del cluster. Consulte Obtención de detalles de conexión de un cluster de OCI Cache. Para los clusters con particiones horizontales, los FQDN son para los puntos finales privados en el nodo de cada partición horizontal. Consulte Obtención de detalles de conexión de un cluster con particiones horizontales de OCI Cache.
    Importante

    No utilice direcciones IP para resolver nodos de la topología.
  • Por defecto, OCI Cache solo soporta conexiones TLS con clusters, independientemente del cliente desde el que se conecte. Si su escenario necesita conectarse sin TLS, póngase en contacto con los Servicios de Soporte.

  • Si la versión del motor de caché para el cluster es REDIS_7_0, se requiere Redis CLI versión 6 o posterior, se recomienda Redis CLI versión 7. Si la versión del motor de caché es VALKEY_7_2, se requiere la versión 7.2 de la CLI de Valkey. Para obtener más información, consulte Connecting with the Valkey CLI or Redis CLI.

  • Al conectarse a bases de datos como OCI Cache, utilice el pool de conexiones como buena práctica de desarrollo. Si el número de conexiones al cluster supera 1024, puede provocar una carga excesiva en el proceso del servicio y ralentizar las respuestas. Consulte la documentación para conocer el marco o la biblioteca que está utilizando para conocer las prácticas de codificación recomendadas.

  • Al crear un cluster, OCI Cache crea y gestiona el juego de instancias informáticas que componen los nodos del cluster. Estas instancias son las únicas que están soportadas como nodos de cluster; no puede asociar ninguna instancia que haya creado por separado como nodo para el cluster. Al intentar asociar instancias adicionales al cluster, el cluster pasa a un estado de ciclo de vida FAILED.

  • Cualquier biblioteca de cliente Valkey o Redis que utilice para conectarse a un cluster con particiones horizontales debe admitir Valkey o Redis CLUSTER MODE con soporte de nombre de host.

Información de conexión de cluster no fragmentado

La información de conexión del cluster incluye los siguientes puntos finales que se utilizan para conectarse al cluster:

  • Punto final principal: es el punto final del nodo principal del cluster. Este punto final siempre se conecta al nodo configurado como principal, incluso si la instancia subyacente configurada como nodo principal ha cambiado.

  • Punto final de réplicas: este es el punto final para los nodos de réplica del cluster. Este punto final siempre se conecta a un nodo configurado como réplica, aunque para clusters con varios nodos de réplica, puede que no sea la misma réplica cada vez.

  • Puntos finales de nodo: son los puntos finales directos de cada instancia de nodo. Utilice estos puntos finales solo para las conexiones si ha verificado que se está conectando al tipo de nodo al que espera conectarse. A veces, la instancia subyacente del nodo primario puede haber cambiado. Para garantizar que se está conectando al nodo principal, utilice el punto final principal en su lugar.

Consulte Obtención de detalles de conexión de un cluster de OCI Cache para obtener información sobre cómo ver esta información.

Información de conexión de cluster con particiones horizontales

Los clusters con particiones horizontales no tienen puntos finales primarios o de réplica en el nivel de cluster que utilice para conectarse al cluster. En su lugar, utilice los puntos finales privados para los nodos principales de las particiones horizontales de un cluster. Consulte Obtención de detalles de conexión de un cluster con particiones horizontales de OCI Cache para obtener esta información. Le recomendamos que especifique los puntos finales privados para las tres primeras particiones horizontales del cluster en la información de conexión de la aplicación.

Regla de seguridad para conectarse a clusters

Para activar las conexiones a un cluster, la VCN del cluster debe tener una regla de seguridad de entrada configurada con los siguientes valores:

  • Sin estado: no

  • Protocolo IP: TCP

  • Rango de puertos de origen: Todo

  • Rango de puertos de destino: 6379

  • Permite: tráfico TCP para los puertos: 6379

El servicio Networking proporciona dos funciones que puede utilizar para aplicar una regla de seguridad a una VCN, listas de seguridad y grupos de seguridad de red (NSG). OCI Cache soporta ambas funciones. Para obtener más información, consulte Lista de seguridad para clusters y Uso de un NSG para clusters.

Con las listas de seguridad, la regla de seguridad se aplica a todas las redes virtuales en la nube de una subred. Asegúrese de que la subred desde la que la aplicación cliente se conecta al cluster de OCI Cache tenga una lista de seguridad de salida que permita la comunicación con OCI Cache en el puerto de destino 6379.

Si desea que la regla de seguridad solo se aplique al subjuego de redes virtuales en la nube, utilice un NSG en su lugar. Para obtener más información sobre las diferencias entre los grupos de seguridad y los NSG, consulte Comparación de listas de seguridad y grupos de seguridad de red.

Lista de seguridad para clusters

Al crear un cluster, para que los datos sean accesibles desde el cluster, OCI Cache crea una lista de seguridad con una regla de seguridad de entrada con estado para el tráfico TCP en el puerto de destino 6379 para la VCN del cluster.

Puede verificar la lista de seguridad de esta regla mediante los siguientes pasos:

  1. En la página de lista Clusters, seleccione el cluster con el que desea trabajar. Si necesita ayuda para buscar la página de lista o el cluster, consulte Lista de clusters de OCI Cache.

  2. En la página de detalles del cluster, seleccione el enlace Subred en el separador Información del cluster.

  3. En la página de lista de la subred, seleccione Seguridad.

  4. En la página Listas de seguridad, seleccione redis-security-list.

  5. En la página redis-security-list details, seleccione Security rules.

  6. En Reglas de entrada, debería ver una regla mostrada con los siguientes valores:

    • Sin estado: no

    • Protocolo IP: TCP

    • Rango de puertos de origen: Todo

    • Rango de puertos de destino: 6379

    • Permite: tráfico TCP para los puertos: 6379

Si no ve la lista de seguridad o la regla no está configurada según sea necesario, puede crear una nueva lista de seguridad y agregar la regla, o bien puede agregar la regla a la lista de seguridad por defecto para la VCN. Para obtener más información, consulte Listas de seguridad y Creación de una lista de seguridad.

Al crear y configurar la regla, debe especificar las siguientes opciones en la página Agregar reglas de entrada:
  • Sin estado: deje la casilla de control desactivada.

  • Tipo de origen: CIDR

  • Protocolo IP: TCP

  • Rango de puertos de origen: Todo

  • Rango de puertos de destino: 6379

Uso de un NSG para clusters

Para utilizar un NSG en lugar de una lista de seguridad, debe agregar una regla de seguridad de entrada al NSG con la configuración necesaria para conectarse a un cluster. Para obtener más información sobre la creación y gestión de NSG, consulte lo siguiente:

Al crear y configurar la regla de entrada para el NSG, debe especificar la siguiente configuración:
  • Sin estado: deje la casilla de control desactivada.

  • Tipo de origen: CIDR

  • Protocolo IP: TCP

  • Rango de puertos de origen: Todo

  • Rango de puertos de destino: 6379

Puede configurar de uno a cinco NSG para un cluster. Puede especificar NSG para un cluster al crear el cluster. También puede configurar NSG para un cluster existente. Consulte Configuración de grupos de seguridad de red de un cluster de OCI Cache.

Crear una instancia de VM

Puede conectarse al cluster mediante los comandos de la CLI de Valkey o la CLI de Redis desde una instancia de VM en la misma subred que el cluster. Consulte uno de los siguientes temas para obtener información sobre cómo crear una instancia:

Una vez creada la instancia, conéctese a la instancia. Para obtener más información, consulte lo siguiente:

Conexión con la CLI de Valkey o la CLI de Redis

Consejo

Para clusters configurados con la versión REDIS_7_0 del motor de caché, se necesita la versión 6 o posterior de la CLI de Redis, se recomienda la versión 7 de la CLI de Redis. Para los clusters configurados con la versión VALKEY_7_2 del motor de caché, se necesita la versión 7.2 de Valkey CLI.

Descargue e instale la CLI de Redis o la CLI de Valkey en la instancia de VM.

Nota

La CLI de Redis y Valkey usan la misma sintaxis de comando. La única diferencia entre ambos es la inclusión del identificador redis-cli o valkey-cli al principio del comando. Puede ejecutar todos los comandos de este tema con cualquiera de estos identificadores en función de la CLI que haya instalado. El primero de los siguientes ejemplos proporciona los ejemplos Redis y Valkey. Sin embargo, puede utilizar cualquiera de los identificadores para cualquiera de los ejemplos.

Para conectarse a un cluster sin particiones horizontales, ejecute el siguiente comando para conectarse al nodo principal del cluster:

redis-cli --tls -h <ID>-p.redis.<region>.oci.oraclecloud.com
valkey-cli --tls -h <ID>-p.redis.<region>.oci.oraclecloud.com

Para conectarse a un cluster con particiones horizontales, ejecute el siguiente comando para conectarse a una de las particiones horizontales del cluster:

redis-cli --tls -h <ID>.redis.<region>.oci.oraclecloud.com -c

Consulte Obtención de detalles de conexión de un cluster con particiones horizontales de OCI Cache para obtener la cadena de conexión para la partición horizontal.

Importante

Debe incluir el conmutador -c para las conexiones a clusters con particiones horizontales. Especifica que se está conectando con la CLI en modo de cluster. Consulte 4.2 Using Redis-CLI with a Redis Cluster para obtener más información.

Si no incluye --tls, el error Error: connection reset by peer se produce para cualquier comando de la CLI de Redis.

El error Unrecognized option or bad number of args for: '--tls' se produce si la versión de la CLI de Redis que está utilizando es anterior a la versión 6. Para comprobar la versión de la CLI de Redis, ejecute el siguiente comando:

redis-cli -v

Scripts de Lua

Las secuencias de comandos de Lua se ejecutan en el servidor, lo que permite una lectura y escritura eficientes de los datos del cluster. Para obtener más información, consulte Scripting with Lua. En el siguiente ejemplo, se muestra cómo llamar al comando EVAL desde la CLI de Valkey o la CLI de Redis para definir un valor de clave y, a continuación, recuperar el valor de clave.

Para establecer el valor clave:

redis-cli --tls -h <IP_address> EVAL "return redis.call('SET', 'mykey', 'helloworld')" 0

Para recuperar el valor de clave que acaba de definir:

redis-cli --tls -h <IP_address> EVAL "return redis.call('GET', 'mykey')" 0

No recomendamos usar scripts de Lua de larga ejecución. Cuando se ejecuta una secuencia de comandos de Lua, se bloquea la ejecución de otros comandos hasta que se completa la secuencia de comandos de Lua. El tiempo máximo de ejecución de un script se define mediante el valor busy-reply-threshold. Por defecto, el valor de busy-reply-threshold es cinco segundos. Cuando una secuencia de comandos de Lua se ejecuta más tiempo que el tiempo de ejecución predeterminado de cinco segundos, existe una mayor probabilidad de que se disparen failovers para el cluster y de que el cluster pase a un estado en mal estado. Si tiene un cluster que requiere secuencias de comandos Lua que tardan más de cinco segundos en ejecutarse, póngase en contacto con los Servicios de Soporte para solicitar que se aumente el valor busy-reply-threshold para el cluster.

Importante

Los scripts de Lua no están soportados para los clusters con particiones horizontales.

Solución de problemas de conexión a un cluster

Prueba de conectividad básica con la herramienta dig

Utilice la herramienta dig para probar la conectividad de red básica al cluster, por ejemplo, para conectarse al nodo principal:
dig <primary_endpoint>

Consulte Obtención de detalles de conexión de un cluster de OCI Cache para obtener el punto final del nodo principal.

Si ejecuta el comando dig desde la misma VCN que el cluster y la conexión no se resuelve, verifique que la subred tenga una lista de seguridad con una regla de seguridad de entrada con estado para el tráfico TCP en el puerto de destino 6379. Al crear un cluster, OCI Cache crea una lista de seguridad con la configuración necesaria. Sin embargo, si se elimina o actualiza, debe agregar esta configuración. Para obtener más información, consulte Security List for Clusters.

Si ejecuta el comando dig desde una VCN diferente como cluster y la conexión no se resuelve, compruebe que tiene la configuración de tabla de rutas correcta para las VCN, consulte Tablas de rutas de VCN.

Analizador de rutas de red

También puede utilizar Network Path Analyzer para probar la conectividad al cluster. Con esta herramienta, puede solucionar e identificar problemas de enrutamiento y de configuración de red con la configuración, tanto si se conecta desde la misma VCN como desde otra VCN.