sql >> Databáze >  >> NoSQL >> Redis

Jak migrovat data Redis™ pomocí Redis-Shake

Migrace dat ScaleGrid pro Redis™* z jednoho serveru na druhý je běžným požadavkem, který slyšíme od našich zákazníků. Dva z hlavních důvodů, které slýcháme, jsou často kvůli migraci hardwaru nebo potřebě rozdělit data mezi servery.

Obvykle chcete migrovat s minimálními prostoji při použití standardních nástrojů Redis. V tomto blogovém příspěvku vás provedeme procesem pomocí open-source nástroje Redis-Shake. Redis-Shake, vyvinutý a spravovaný týmem NoSQL v oddělení Alibaba-Cloud Database, umožňuje snadnou migraci dat Redis mezi clustery Redis. I když je tato příručka zaměřena spíše na nasazení ScaleGrid pro Redis™*, lze tuto příručku s malými úpravami použít i pro jiné typy nasazení Redis.

Bez dalších řečí začněme s průvodcem migrace!

Předpoklady

K provedení migrace budete potřebovat počítač se systémem Linux nebo Windows. (V případě potřeby to může být zdrojový nebo cílový počítač).

Důležitou věcí, kterou byste se měli ujistit, než budete pokračovat, je, že Redis-Shake zatím nepodporuje clustery s povoleným SSL. Ujistěte se prosím, že jak zdrojový, tak cílový cluster nepodporují SSL.

Pravidlo brány firewall

Ujistěte se, že jste vytvořili pravidlo brány firewall, aby se váš počítač se systémem Linux/Windows mohl připojit ke zdrojovému i cílovému clusteru. Další informace o tom, jak to nastavit na ScaleGrid, najdete na tomto odkazu.

Stáhnout Redis-Shake

Stáhněte a dekomprimujte Redis-Shake na počítači se systémem Linux/Windows po výběru nejnovější/stabilní verze z tohoto odkazu. Ke stažení nejnovější verze k dnešnímu dni (v2.1.1) můžete také použít následující příkazy.

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/

Dále vám ukážeme dva různé případy použití pro Redis-Shake.

  • Migrace dat ze Standalone a Master-Slave
  • Migrace dat v režimu clusteru

Migrace dat – samostatný a Master-Slave

V této části vám ukážeme, jak migrovat data v těchto různých nastaveních:

  • Od samostatného k samostatnému
  • Master-Slave to Master-Slave
  • Samostatný na Master-Slave (a naopak)

1. Shromážděte informace

Poznamenejte si následující informace z karty Přehled na stránce podrobností o clusteru ze zdrojového i cílového clusteru:

  • Název hostitele :Připojovací řetězec je ve formátu [název hostitele:port]. Mělo by to vypadat nějak takto:EX-redms-00-redis-master.example.domain.io
    • (V případě clusteru Master-Slave se připojíme k hlavnímu).
  • Port :6379
  • Heslo :Své heslo můžete najít a resetovat z konzole v části Přihlašovací údaje

2. Upravit konfigurační soubor

Otevřete svůj soubor „redis-shake.conf“ v hlavní složce a upravte následující proměnné:

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. Synchronizovat data

Spusťte následující příkaz k synchronizaci dat mezi zdrojovým a cílovým clusterem:

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

4. Počkejte na protokoly

Počkejte, dokud v protokolech neuvidíte následující informace:

sync rdb done.

To znamená, že úplná synchronizace byla dokončena a začíná přírůstková synchronizace.

5. Zastavit přírůstkovou synchronizaci

Pokud +writeBytes=0 je vidět po dlouhou dobu, pak to znamená, že se nezvyšují žádná nová data. Přírůstkovou synchronizaci můžete zastavit stisknutím Ctrl+C . Mělo by to vypadat nějak takto:

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

6. Shoda s počtem klíčů

Nyní přejděte na tento odkaz na náš dokument nápovědy, který vám pomůže připojit se k oběma clusterům pomocí redis-cli a poté spárovat počet klíčů mezi vašimi clustery pomocí info keyspace příkaz na obou clusterech.

A je to! Nyní jste úspěšně migrovali data z jednoho clusteru do druhého pomocí Redis-Shake. Pokud máte clustery v režimu clusteru, možná se budete chtít podívat na naši další část této příručky, kde zjistíte, co musíte udělat, pokud používáte tento typ clusteru.

Migrace dat – režim clusteru

V této části vám ukážeme, jak migrovat data z jednoho nasazení Redis v režimu clusteru do jiného clusteru.

1. Shromážděte informace

Poznamenejte si následující informace z karty Přehled na stránce podrobností o clusteru ze zdrojového i cílového clusteru:

  • Název hostitele :Připojovací řetězec je ve formátu [název_hostitele1:port], [název_hostitele2:port], [název_hostitele3:port]. Mělo by to vypadat nějak takto: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
  • Heslo :Své heslo můžete najít a resetovat z konzole v části Přihlašovací údaje

2. Upravit konfigurační soubor

Otevřete svůj soubor „redis-shake.conf“ v hlavní složce a upravte následující proměnné:

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. Synchronizovat data

Spusťte následující příkaz k synchronizaci dat mezi zdrojovým a cílovým clusterem:

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

4. Počkejte na protokoly

Počkejte, dokud v protokolech neuvidíte následující informace:

sync rdb done.

To znamená, že úplná synchronizace byla dokončena a začíná přírůstková synchronizace.

5. Zastavit přírůstkovou synchronizaci

Pokud +writeBytes=0 je vidět po dlouhou dobu, pak to znamená, že se nezvyšují žádná nová data. Přírůstkovou synchronizaci můžete zastavit stisknutím Ctrl+C . Mělo by to vypadat nějak takto:

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

6. Shoda s počtem klíčů

Nyní přejděte na tento odkaz na náš dokument nápovědy, který vám pomůže připojit se k oběma clusterům pomocí redis-cli a poté spárovat počet klíčů mezi vašimi clustery pomocí info keyspace příkaz na obou clusterech.

A je to! Nyní jste úspěšně migrovali data z jednoho clusteru v Cluster Mode do druhého pomocí Redis-Shake. Pro více informací o Redis-Shake a jeho možnostech navštivte jejich stránku GitHub, kde se dozvíte více a získáte nejnovější verzi.

Chcete se dozvědět více o ScaleGrid?

Chcete-li se dozvědět více o tom, jak vám ScaleGrid Hosting for Redis™* může pomoci se správou vašich databází, podívejte se na naši stránku ScaleGrid Service for Redis™. Podívejte se, jak vám hosting ScaleGrid pro Redis™ může umožnit soustředit se více na vývoj vašeho produktu a méně na správu databází.

*Redis je ochranná známka společnosti Redis Labs Ltd. Jakákoli práva v ní obsažená jsou vyhrazena společnosti Redis Labs Ltd. Jakékoli použití ScaleGrid je pouze pro referenční účely a neznamená žádné sponzorství, podporu nebo přidružení mezi Redis a ScaleGrid.


  1. Jaký je v Mongo rozdíl mezi shardováním a replikací?

  2. Najít pomocí _id nefunguje s agregací

  3. Upravte pořadí, ve kterém se vlastnosti zobrazují v MongoDB

  4. Vysušení obecné RedisTemplate na jaře 4