Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak migrować dane Redis™ za pomocą Redis-Shake

Migracja danych ScaleGrid for Redis™* z jednego serwera na drugi jest powszechnym wymogiem, który słyszymy od naszych klientów. Dwa główne powody, które słyszymy, są często związane z migracją sprzętu lub potrzebą dzielenia danych między serwerami.

Zazwyczaj chcesz przeprowadzić migrację z minimalnym przestojem przy użyciu standardowych narzędzi Redis. W tym poście na blogu poprowadzimy Cię przez ten proces przy użyciu narzędzia open-source Redis-Shake. Opracowany i utrzymywany przez zespół NoSQL w dziale Alibaba-Cloud Database, Redis-Shake umożliwia łatwą migrację danych Redis między klastrami Redis. Chociaż ten przewodnik jest bardziej ukierunkowany na wdrożenia ScaleGrid for Redis™*, ten przewodnik może być używany do innych typów wdrożeń Redis, a także z niewielkimi modyfikacjami.

Bez zbędnych ceregieli zacznijmy od przewodnika po migracji!

Warunki wstępne

Do przeprowadzenia migracji potrzebny będzie komputer z systemem Linux lub Windows. (W razie potrzeby może to być maszyna źródłowa lub docelowa).

Ważną rzeczą, o której należy się upewnić przed kontynuowaniem, jest to, że Redis-Shake nie obsługuje obecnie klastrów obsługujących SSL. Upewnij się, że klastry źródłowe i docelowe nie obsługują protokołu SSL.

Reguła zapory

Upewnij się, że utworzyłeś regułę zapory, aby umożliwić komputerowi z systemem Linux/Windows łączenie się zarówno z klastrem źródłowym, jak i docelowym. Skorzystaj z tego linku, aby uzyskać więcej informacji na temat konfiguracji tego w ScaleGrid.

Pobierz Redis-Shake

Pobierz i zdekompresuj Redis-Shake na komputerze z systemem Linux/Windows po wybraniu najnowszej/stabilnej wersji z tego linku. Możesz również użyć poniższych poleceń, aby pobrać najnowszą wersję na dzień dzisiejszy (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/

Następnie pokażemy dwa różne przypadki użycia Redis-Shake.

  • Migracja danych z Standalone i Master-Slave
  • Migracja danych w trybie klastra

Migracja danych – Standalone i Master-Slave

W tej sekcji pokażemy, jak przeprowadzić migrację danych w tych różnych konfiguracjach:

  • Samodzielny do samodzielnego
  • Master-Slave do Master-Slave
  • Samodzielny do Master-Slave (i odwrotnie)

1. Zbierz informacje

Zanotuj następujące informacje z karty Przegląd na stronie szczegółów klastra zarówno z klastra źródłowego, jak i docelowego:

  • Nazwa hosta :Ciąg połączenia ma format [nazwa hosta:port]. Powinno wyglądać mniej więcej tak:EX-redms-00-redis-master.example.domain.io
    • (W przypadku klastra Master-Slave połączymy się z masterem).
  • Port :6379
  • Hasło :Możesz znaleźć swoje hasło i zresetować je z konsoli w sekcji Poświadczenia

2. Edytuj plik konfiguracyjny

Otwórz plik „redis-shake.conf” w głównym folderze i edytuj następujące zmienne:

source.type =samodzielny
źródło.adres =:6379
source.password_raw =

target.type =samodzielny
adres.docelowy =:6379
target.password_raw =

3. Synchronizuj dane

Uruchom następujące polecenie, aby zsynchronizować dane między klastrem źródłowym a docelowym:

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

4. Czekaj na dzienniki

Poczekaj, aż w dziennikach zobaczysz następujące informacje:

zakończono synchronizację rdb.

Oznacza to, że pełna synchronizacja została zakończona i rozpoczyna się synchronizacja przyrostowa.

5. Zatrzymaj synchronizację przyrostową

Jeśli +writeBytes=0 jest widoczny przez długi czas, oznacza to, że żadne nowe dane nie są zwiększane. Możesz zatrzymać synchronizację przyrostową, naciskając Ctrl+C . Powinno to wyglądać mniej więcej tak:

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

6. Dopasuj liczbę kluczy

Teraz kliknij ten link do naszego dokumentu pomocy, który pomaga połączyć się z obydwoma klastrami za pomocą redis-cli, a następnie dopasować liczbę kluczy między klastrami za pomocą przestrzeni kluczy info polecenie na obu klastrach.

I to wszystko! Udało Ci się przeprowadzić migrację danych z jednego klastra do drugiego za pomocą Redis-Shake. Jeśli masz klastry w trybie klastra, możesz zajrzeć do następnej sekcji tego przewodnika, aby zobaczyć, co musisz zrobić, jeśli używasz tego typu klastra.

Migracja danych – tryb klastra

W tej sekcji pokażemy, jak przenieść dane z jednego wdrożenia Redis w trybie klastra do innego klastra.

1. Zbierz informacje

Zanotuj następujące informacje z karty Przegląd na stronie szczegółów klastra zarówno z klastra źródłowego, jak i docelowego:

  • Nazwa hosta :Ciąg połączenia ma format [nazwa hosta1:port], [nazwa hosta2:port], [nazwa hosta3:port]. Powinien wyglądać mniej więcej tak:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- master.example.domain.io
  • Port :6379
  • Hasło :Możesz znaleźć swoje hasło i zresetować je z konsoli w sekcji Poświadczenia

2. Edytuj plik konfiguracyjny

Otwórz plik „redis-shake.conf” w głównym folderze i edytuj następujące zmienne:

source.type =klaster
źródło.adres =:6379;:6379;:6379
source.password_raw =

target.type =samodzielny
docelowy.adres =:6379;:6379;:6379
target.password_raw =

3. Synchronizuj dane

Uruchom następujące polecenie, aby zsynchronizować dane między klastrem źródłowym a docelowym:

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

4. Czekaj na dzienniki

Poczekaj, aż w dziennikach zobaczysz następujące informacje:

zakończono synchronizację rdb.

Oznacza to, że pełna synchronizacja została zakończona i rozpoczyna się synchronizacja przyrostowa.

5. Zatrzymaj synchronizację przyrostową

Jeśli +writeBytes=0 jest widoczny przez długi czas, oznacza to, że żadne nowe dane nie są zwiększane. Możesz zatrzymać synchronizację przyrostową, naciskając Ctrl+C . Powinno to wyglądać mniej więcej tak:

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

6. Dopasuj liczbę kluczy

Teraz kliknij ten link do naszego dokumentu pomocy, który pomaga połączyć się z obydwoma klastrami za pomocą redis-cli, a następnie dopasować liczbę kluczy między klastrami za pomocą przestrzeni kluczy info polecenie na obu klastrach.

I to wszystko! Udało Ci się przeprowadzić migrację danych z jednego klastra w trybie klastra do innego przy użyciu funkcji Redis-Shake. Aby uzyskać więcej informacji na temat Redis-Shake i jego możliwości, odwiedź ich stronę GitHub, aby dowiedzieć się więcej i uzyskać najnowszą wersję.

Chcesz dowiedzieć się więcej o ScaleGrid?

Aby dowiedzieć się więcej o tym, jak ScaleGrid Hosting dla Redis™* może pomóc w zarządzaniu bazami danych, sprawdź naszą stronę Usługa ScaleGrid dla Redis™. Zobacz, jak hosting ScaleGrid dla Redis™ może pozwolić Ci skupić się bardziej na rozwoju produktu, a mniej na zarządzaniu bazami danych.

*Redis jest znakiem towarowym Redis Labs Ltd. Wszelkie prawa w tym zakresie są zastrzeżone dla Redis Labs Ltd. Jakiekolwiek użycie przez ScaleGrid służy wyłącznie do celów referencyjnych i nie wskazuje na sponsorowanie, poparcie lub powiązanie między Redis i ScaleGrid.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizowanie listy Redis stosu usług

  2. Wykonywanie równoległe za pomocą StackExchange.Redis?

  3. Architektura dla pamięci podręcznej Redis i Mongo dla trwałości

  4. Saga MassTransit z trwałością Redis daje Metoda Accpet nie ma wyjątku implementacyjnego

  5. Optymalizacja wydajności Nodejs