Skip to main content
Version: 9.1.0

Redis

Ver listado de nodos

Para poder obtener información acerca de los nodos que componen el cluster como ser conectividad o qué replica corresponde a qué master, se deben seguir los siguientes pasos:

  1. Conectarse a una instancia de Redis con el usuario admin.

  2. Ejecutar:

    CLUSTER NODES
    info

    Este comando nos muestra información acerca de los nodos que componen el cluster.

  3. El listado tendrá filas que se verán similares al ejemplo a continuación:

    {{ node_id }} {{ server_ip }}:6369@16369,{{ server_hostname }} {{ myself }} slave {{ master_id }} {{ ping }} {{ pong }} {{ epoch }} {{ status }}
    {{ node_id }} {{ server_ip }}:6389@16389,{{ server_hostname }} {{ myself }} master {{ master_status }} - {{ ping }} {{ pong }} {{ epoch }} {{ status }} {{ hash_slots_range }}
    info
    • node_id: En la primera columna vemos el id del nodo
    • server_ip: En la segunda columna vemos la ip del servidor en que se encuentra el nodo
    • server_hostname: En la segunda columna, después de una coma, vemos el hostname del servidor en que se encuentra el nodo.
    • myself: La presencia de esta palabra nos indica que la información de esa fila corresponde al nodo al que nos hemos conectado
    • slave o master: Nos indica si el nodo es una réplica (slave) o un master.
    • master_id: Los nodos réplica nos indican el node_id del nodo master al que corresponden.
    • ping: Unix Timestamp en el que se envió el último ping que todavía no recibió respuesta o 0, si no hay pings pendientes.
    • pong: Unix Timestamp en el que se recibió un pong por última vez.
    • epoch: Versión del nodo actual, si el nodo es master; o versión actual del master, si es replica.
    • master_status: Los nodos master, cuando dejan de estar operativos, presentan el valor failed. De lo contrario no mostrarán ningún valor.
    • status: Puede mostrar los valores connected o disconnected. Nos indica si el nodo está conectado al cluster o no.
    • hash_slots_range: Rango de slots que le corresponden al nodo. Este valor solamente aparece para nodos master.

Forzar réplica a convertirse en master

En caso de que el cluster de Redis no se encuentre operativo, se debe revisar el listado de nodos. Si la mayoría de los nodos master se encuentran conectados y el cluster no está operativo, revisar qué nodos master están caídos. Teniendo los node_id de los masters, revisar en la misma lista el estado de las réplicas de estos nodos máster. Si las réplicas están conectadas y siguen listadas como slave, la caída del cluster se debe a que estas réplicas no están tomando el lugar de sus respectivos masters. A continuación, se deben seguir los siguientes pasos para cada una de las réplicas que tomará el lugar de su master:

  1. Identificar cuál es la replica que corresponde al master no operativo en el listado de nodos y tomar nota del servidor en que se encuentra.

  2. Conectarse al servidor en que se encuentra la instancia de Redis replica que queremos convertir en master.

  3. Conectarse a la instancia de Redis replica que queremos convertir en master con el usuario admin.

  4. Ejecutar:

    CLUSTER FAILOVER FORCE
    info

    Este comando obliga al nodo replica a tomar el lugar de su master.

Caída de master y su replica

Si al revisar el listado de nodos verificamos que tanto un nodo máster como su réplica han caído, debe levantarse alguno de ellos para que redis clúster vuelva a estar operativo. Hasta que uno de los dos esté disponible, el clúster no podrá estar operativo.

Conectarse a nodo de Redis por medio de la terminal

Para poder conectarse a un nodo de redis y poder ejecutar comandos dentro de él se deben seguir los siguientes pasos:

  1. Ejecutar en algún servidor con un nodo operativo:

    docker exec -it redis-{{ node_type }} sh
    info

    Este comando nos conecta con la terminal de la instancia de docker especificada.

    • node_type: es el tipo del nodo, puede ser replica o master.
  2. Ejecutar:

    redis-cli -u redis://{{ user_name }}:{{ user_password }}@127.0.0.1:{{ node_port }} --tls --cert /opt/viridian/tls/cert.pem --key /opt/viridian/tls/key.pem --cacert /opt/viridian/tls/cert.pem
    info

    Este comando nos conecta con la base de datos Redis dentro del contenedor.

    • node_port: 6369 para acceder a redis-replica, 6389 para acceder a redis-master
    • user_name: Los usuarios existentes pueden visualizarse en defaults/local_vars.yml. Ej: insightPassword, donde insight es el nombre del usuario.
    • user_password: Este valor puede encontrarse en el archivo defaults/local_vars.yml. Ej: insightPassword, donde el valor de insightPassword es la contraseña del usuario insight.