Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment migrer des données Redis™ à l'aide de Redis-Shake

La migration des données ScaleGrid for Redis™* d'un serveur à un autre est une exigence courante que nous entendent nos clients. Deux des principales raisons que nous entendons sont souvent dues à la migration du matériel ou à la nécessité de répartir les données entre les serveurs.

En règle générale, vous souhaitez migrer avec un temps d'arrêt minimal tout en utilisant les outils Redis standard. Dans cet article de blog, nous vous guiderons tout au long du processus à l'aide de l'outil open source Redis-Shake. Développé et maintenu par l'équipe NoSQL du département Alibaba-Cloud Database, Redis-Shake vous permet de migrer facilement les données Redis entre les clusters Redis. Bien que ce guide soit davantage destiné aux déploiements de ScaleGrid pour Redis™*, ce guide peut également être utilisé pour d'autres types de déploiements Redis avec quelques légères modifications.

Sans plus tarder, commençons avec le guide de migration !

Prérequis

Vous aurez besoin d'une machine Linux ou Windows pour effectuer la migration. (Si nécessaire, il peut s'agir de la machine source ou de la machine cible).

Une chose importante à vérifier avant de continuer est que Redis-Shake ne prend pas en charge les clusters compatibles SSL pour le moment. Veuillez vous assurer que les clusters source et cible ne sont pas compatibles SSL.

Règle de pare-feu

Assurez-vous d'avoir créé une règle de pare-feu afin de permettre à votre machine Linux/Windows de se connecter à la fois à vos clusters source et cible. Reportez-vous à ce lien pour plus d'informations sur la façon de configurer cela sur ScaleGrid.

Télécharger Redis-Shake

Téléchargez et décompressez Redis-Shake sur la machine Linux/Windows après avoir choisi la version la plus récente/stable à partir de ce lien. Vous pouvez également utiliser les commandes suivantes ci-dessous pour télécharger la dernière version à ce jour (v2.1.1).

wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz
tar -xvzf release-v2.1.1-20210903.tar.gz
cd release-v2.1.1-20210903/

Ensuite, nous allons vous montrer deux cas d'utilisation différents pour Redis-Shake.

  • Migration de données depuis un Standalone et Master-Slave
  • Migrer des données en mode cluster

Migration de données – Autonome et maître-esclave

Dans cette section, nous allons vous montrer comment migrer vos données dans ces différentes configurations :

  • Autonome à autonome
  • Maître-Esclave à Maître-Esclave
  • Autonome à Maître-Esclave (et vice-versa)

1. Recueillir des informations

Notez les informations suivantes dans l'onglet Présentation de la page des détails du cluster à partir de votre cluster source et cible :

  • Nom d'hôte :La chaîne de connexion est au format [nom d'hôte :port]. Cela devrait ressembler à ceci :EX-redms-00-redis-master.example.domain.io
    • (Dans le cas d'un cluster maître-esclave, nous nous connecterons au maître).
  • Port :6379
  • Mot de passe  :Vous pouvez trouver votre mot de passe et le réinitialiser à partir de la console sous Identifiants

2. Modifier le fichier de configuration

Ouvrez votre fichier "redis-shake.conf" dans le dossier principal et modifiez les variables suivantes :

source.type = standalone
source.address = <source_hostname>:6379
source.password_raw = <source_password>

target.type = standalone
target.address = <target_hostname>:6379
target.password_raw = <target_password>

3. Synchroniser les données

Exécutez la commande suivante pour synchroniser les données entre le cluster source et cible :

$ ./redis-shake -type sync -conf redis-shake.conf

4. Attendre les journaux

Attendez de voir les informations suivantes dans les journaux :

sync rdb done.

Cela signifie que la synchronisation complète est terminée et que la synchronisation incrémentielle commence.

5. Arrêter la synchronisation incrémentielle

Si +writeBytes=0 est visible pendant une longue période, cela signifie qu'aucune nouvelle donnée n'est incrémentée. Vous pouvez arrêter la synchronisation incrémentielle en appuyant sur Ctrl+C . Cela devrait ressembler à ceci :

sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0

6. Faire correspondre le nombre de clés

Suivez maintenant ce lien vers notre documentation d'aide qui vous aide à vous connecter aux deux clusters à l'aide de redis-cli, puis à faire correspondre le nombre de clés entre vos clusters à l'aide de l'info keyspace commande sur les deux clusters.

Et c'est tout ! Vous avez maintenant réussi à migrer des données d'un cluster à un autre à l'aide de Redis-Shake. Si vous avez des clusters en mode cluster, vous voudrez peut-être consulter notre prochaine section de ce guide pour voir ce que vous devez faire si vous exécutez ce type de cluster.

Migration des données – Mode cluster

Dans cette section, nous allons vous montrer comment migrer des données d'un déploiement Redis en mode cluster vers un autre cluster.

1. Recueillir des informations

Notez les informations suivantes dans l'onglet Présentation de la page des détails du cluster à partir de votre cluster source et cible :

  • Nom d'hôte :La chaîne de connexion est au format [hostname1:port], [hostname2:port], [hostname3:port]. Cela devrait ressembler à ceci :EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- maître.exemple.domaine.io
  • Port :6379
  • Mot de passe  :Vous pouvez trouver votre mot de passe et le réinitialiser à partir de la console sous Identifiants

2. Modifier le fichier de configuration

Ouvrez votre fichier "redis-shake.conf" dans le dossier principal et modifiez les variables suivantes :

source.type = cluster
source.address = <source_hostname1>:6379;<source_hostname2>:6379;<source_hostname3>:6379
source.password_raw = <source_password>

target.type = standalone
target.address = <target_hostname1>:6379;<target_hostname2>:6379;<target_hostname3>:6379
target.password_raw = <target_password>

3. Synchroniser les données

Exécutez la commande suivante pour synchroniser les données entre le cluster source et cible :

$ ./redis-shake -type sync -conf redis-shake.conf

4. Attendre les journaux

Attendez de voir les informations suivantes dans les journaux :

sync rdb done.

Cela signifie que la synchronisation complète est terminée et que la synchronisation incrémentielle commence.

5. Arrêter la synchronisation incrémentielle

Si +writeBytes=0 est visible pendant une longue période, cela signifie qu'aucune nouvelle donnée n'est incrémentée. Vous pouvez arrêter la synchronisation incrémentielle en appuyant sur Ctrl+C . Cela devrait ressembler à ceci :

sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0

6. Faire correspondre le nombre de clés

Suivez maintenant ce lien vers notre documentation d'aide qui vous aide à vous connecter aux deux clusters à l'aide de redis-cli, puis à faire correspondre le nombre de clés entre vos clusters à l'aide de l'info keyspace commande sur les deux clusters.

Et c'est tout ! Vous avez maintenant réussi à migrer les données d'un cluster en mode cluster vers un autre à l'aide de Redis-Shake. Pour plus d'informations sur Redis-Shake et ses fonctionnalités, visitez leur page GitHub pour en savoir plus et obtenir la dernière version.

Vous souhaitez en savoir plus sur ScaleGrid ?

Pour en savoir plus sur la façon dont ScaleGrid Hosting for Redis™* peut vous aider à gérer vos bases de données, consultez notre page ScaleGrid Service for Redis™. Découvrez comment l'hébergement ScaleGrid pour Redis™ peut vous permettre de vous concentrer davantage sur le développement de votre produit, et moins sur la gestion des bases de données.

*Redis est une marque commerciale de Redis Labs Ltd. Tous les droits y afférents sont réservés à Redis Labs Ltd. Toute utilisation par ScaleGrid est uniquement à des fins de référence et n'indique aucun parrainage, approbation ou affiliation entre Redis et ScaleGrid.