Red de conocimiento informático - Problemas con los teléfonos móviles - Migración de datos entre clústeres de Redis

Migración de datos entre clústeres de Redis

Redis administra los datos calculando el valor hash de KEY y asignando KEY a las ranuras. Cada nodo del clúster es responsable de una parte de las ranuras y el número máximo de ranuras es 16384.

En la variable de estructura clusterNode correspondiente al nodo del clúster, puede ver una matriz de ranuras. El tamaño de la matriz es CLUSTER_SLOTS dividido por 8 y el valor de CLUSTER_SLOTS es 16384:

clusterState

clusterNode guarda información relacionada con el nodo y la información de migración de datos del clúster no se almacena en clusterNode. En su lugar, se utiliza la estructura clusterState para contener esta información:

Relación entre clusterState y clusterNode

Para realizar la migración de datos manualmente, debe realizar los siguientes pasos:

Antes de realizar la migración de datos, primero debe usar el comando SETSLOT en el nodo de destino para marcar el nodo donde se migrará el SLOT al nodo actual:

Luego use el comando MIGRATING en el nodo de origen donde el SLOT está ubicado para marcar los datos al Nodo al que se migrará:

Por ejemplo, si SLOT1 está actualmente en el nodo 1 y necesita migrar SLOT1 al nodo 2, primero ejecute el comando IMPORTAR. en el nodo 2, y la ranura marcada está lista desde el nodo 1. Migre al nodo 2 actual:

Luego ejecute el comando MIGRACIÓN en el nodo 1 para marcar la ranura 1 como si necesita migrarse al nodo 2:

clusterCommand

El comando SETSLOT está en la función clusterCommand (ubicada en el archivo cluster.c):

clusterCommand