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:
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