sql >> Database >  >> NoSQL >> Redis

Redis™-gegevens migreren met Redis-Shake

Het migreren van ScaleGrid voor Redis™*-gegevens van de ene server naar de andere is een veelvoorkomende vereiste die we van onze klanten horen. Twee van de belangrijkste redenen die we horen, zijn vaak te wijten aan migratie van hardware of de noodzaak om gegevens tussen servers te splitsen.

Normaal gesproken wil je migreren met minimale downtime terwijl je de standaard Redis-tools gebruikt. In deze blogpost begeleiden we je door het proces met behulp van de open-source tool Redis-Shake. Redis-Shake is ontwikkeld en onderhouden door het NoSQL-team op de afdeling Alibaba-Cloud Database en stelt u in staat om eenvoudig Redis-gegevens tussen Redis-clusters te migreren. Hoewel deze handleiding meer gericht is op ScaleGrid voor Redis™*-implementaties, kan deze handleiding ook worden gebruikt voor andere typen Redis-implementaties, met enkele kleine aanpassingen.

Laten we zonder verder oponthoud beginnen met de migratiegids!

Vereisten

Je hebt een Linux- of Windows-computer nodig om de migratie uit te voeren. (Indien nodig kan dit de bron- of de doelcomputer zijn).

Een belangrijk ding om zeker van te zijn voordat je verder gaat, is dat Redis-Shake vanaf nu geen SSL-enabled clusters ondersteunt. Zorg ervoor dat zowel de bron- als de doelclusters niet SSL-enabled zijn.

Firewall-regel

Zorg ervoor dat je een firewallregel hebt gemaakt zodat je Linux/Windows-machine verbinding kan maken met zowel je bron- als doelclusters. Raadpleeg deze link voor meer informatie over hoe u dit instelt op ScaleGrid.

Download Redis-Shake

Download en decomprimeer Redis-Shake op de Linux/Windows-machine nadat je de nieuwste/stabiele versie via deze link hebt gekozen. Je kunt ook de volgende commando's hieronder gebruiken om de nieuwste versie vanaf vandaag te downloaden (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/

Vervolgens laten we u twee verschillende gebruiksscenario's voor Redis-Shake zien.

  • Gegevens migreren van een standalone en master-slave
  • Gegevens migreren in clustermodus

Gegevens migreren – standalone en master-slave

In dit gedeelte laten we u zien hoe u uw gegevens kunt migreren in deze verschillende instellingen:

  • Zelfstandig naar zelfstandig
  • Master-Slave naar Master-Slave
  • Standalone naar Master-Slave (en vice versa)

1. Informatie verzamelen

Noteer de volgende informatie van het tabblad Overzicht op de clusterdetailpagina van zowel uw bron- als doelcluster:

  • Hostnaam :De Connection String heeft de indeling [hostnaam:poort]. Het zou er ongeveer zo uit moeten zien:EX-redms-00-redis-master.example.domain.io
    • (In het geval van een Master-Slave-cluster maken we verbinding met de master).
  • Poort :6379
  • Wachtwoord :U kunt uw wachtwoord vinden en opnieuw instellen vanaf de console onder Inloggegevens

2. Configuratiebestand bewerken

Open uw "redis-shake.conf"-bestand in de hoofdmap en bewerk de volgende variabelen:

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. Gegevens synchroniseren

Voer de volgende opdracht uit om gegevens tussen de bron- en doelcluster te synchroniseren:

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

4. Wacht op logboeken

Wacht tot je de volgende informatie in de logboeken ziet:

sync rdb done.

Dit betekent dat de volledige synchronisatie is voltooid en de incrementele synchronisatie begint.

5. Incrementele synchronisatie stoppen

If +writeBytes=0 lange tijd wordt gezien, betekent dit dat er geen nieuwe gegevens worden opgehoogd. U kunt de incrementele synchronisatie stoppen door op Ctrl+C . te drukken . Het zou er ongeveer zo uit moeten zien:

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

6. Overeenkomen met aantal toetsen

Volg nu deze link naar ons Help-document dat u helpt verbinding te maken met beide clusters met behulp van redis-cli en vervolgens het aantal sleutels tussen uw clusters te matchen met behulp van de info keyspace commando op beide clusters.

En dat is alles! U hebt nu met succes gegevens van het ene cluster naar het andere gemigreerd met Redis-Shake. Als je clusters in de clustermodus hebt, wil je misschien een kijkje nemen in ons volgende gedeelte in deze handleiding om te zien wat je moet doen als je dat type cluster gebruikt.

Gegevens migreren – Clustermodus

In dit gedeelte laten we u zien hoe u gegevens van de ene Redis-implementatie in clustermodus naar een andere cluster kunt migreren.

1. Informatie verzamelen

Noteer de volgende informatie van het tabblad Overzicht op de clusterdetailpagina van zowel uw bron- als doelcluster:

  • Hostnaam :De verbindingsreeks heeft de indeling [hostnaam1:poort], [hostnaam2:poort], [hostnaam3:poort]. Het zou er ongeveer zo uit moeten zien:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- master.voorbeeld.domein.io
  • Poort :6379
  • Wachtwoord :U kunt uw wachtwoord vinden en opnieuw instellen vanaf de console onder Inloggegevens

2. Configuratiebestand bewerken

Open uw "redis-shake.conf"-bestand in de hoofdmap en bewerk de volgende variabelen:

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. Gegevens synchroniseren

Voer de volgende opdracht uit om gegevens tussen de bron- en doelcluster te synchroniseren:

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

4. Wacht op logboeken

Wacht tot je de volgende informatie in de logboeken ziet:

sync rdb done.

Dit betekent dat de volledige synchronisatie is voltooid en de incrementele synchronisatie begint.

5. Incrementele synchronisatie stoppen

If +writeBytes=0 lange tijd wordt gezien, betekent dit dat er geen nieuwe gegevens worden opgehoogd. U kunt de incrementele synchronisatie stoppen door op Ctrl+C . te drukken . Het zou er ongeveer zo uit moeten zien:

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

6. Overeenkomen met aantal toetsen

Volg nu deze link naar ons Help-document dat u helpt verbinding te maken met beide clusters met behulp van redis-cli en vervolgens het aantal sleutels tussen uw clusters te matchen met behulp van de info keyspace commando op beide clusters.

En dat is alles! U hebt nu met succes gegevens van het ene cluster in de clustermodus naar het andere gemigreerd met behulp van Redis-Shake. Ga voor meer informatie over Redis-Shake en de mogelijkheden ervan naar hun GitHub-pagina voor meer informatie en om de nieuwste versie te downloaden.

Geïnteresseerd in meer informatie over ScaleGrid?

Voor meer informatie over hoe ScaleGrid Hosting voor Redis™* u kan helpen bij het beheren van uw databases, bekijk onze ScaleGrid Service voor Redis™-pagina. Bekijk hoe u met ScaleGrid-hosting voor Redis™ u meer kunt focussen op het ontwikkelen van uw product en minder op het beheren van databases.

*Redis is een handelsmerk van Redis Labs Ltd. Alle rechten daarin zijn voorbehouden aan Redis Labs Ltd. Elk gebruik door ScaleGrid is alleen voor referentiedoeleinden en duidt niet op sponsoring, goedkeuring of samenwerking tussen Redis en ScaleGrid.


  1. Hoe de prestaties van MongoDB te optimaliseren?

  2. Hoe het .bson-bestandsformaat op mongodb te importeren

  3. Hoe Redis in een aangepaste naamruimte in te stellen als cache en MQ op de ServiceStack-webtoepassing met behulp van Structuremap

  4. Sleutelwaardedatabase met Java-client