Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да мигрирате Redis™ данни с помощта на Redis-Shake

Мигрирането на данни от ScaleGrid за Redis™* от един сървър на друг е често срещано изискване, което чуваме от нашите клиенти. Две от основните причини, които чуваме, често се дължат на миграция на хардуер или необходимостта от разделяне на данни между сървърите.

Обикновено искате да мигрирате с минимално време на престой, докато използвате стандартните инструменти на Redis. В тази публикация в блога ще ви преведем през процеса с помощта на инструмента с отворен код Redis-Shake. Разработен и поддържан от екипа на NoSQL в отдела за база данни на Alibaba-Cloud, Redis-Shake ви позволява лесно да мигрирате Redis данни между Redis клъстери. Въпреки че това ръководство е насочено повече към внедряването на ScaleGrid за Redis™*, това ръководство може да се използва и за други типове внедрявания на Redis, с някои леки модификации.

Без повече думи, нека започнем с ръководството за миграция!

Предварителни условия

Ще ви е необходима машина с Linux или Windows, за да извършите миграцията. (Ако е необходимо, това може да бъде или изходната, или целевата машина).

Важно нещо, в което трябва да се уверите, преди да продължите, е, че Redis-Shake засега не поддържа клъстери с активиран SSL. Моля, уверете се, че и изходният, и целевият клъстер не са активирани за SSL.

Правило за защитната стена

Уверете се, че сте създали правило за защитна стена, за да позволите на вашата Linux/Windows машина да се свърже както с изходния, така и с целевия клъстер. Вижте тази връзка за повече информация как да настроите това в ScaleGrid.

Изтеглете Redis-Shake

Изтеглете и декомпресирайте Redis-Shake на машината с Linux/Windows, след като изберете най-новата/стабилна версия от тази връзка. Можете също да използвате следните команди по-долу, за да изтеглите най-новата версия от днес (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/

По-нататък ще ви покажем два различни случая на използване на Redis-Shake.

  • Мигриране на данни от самостоятелен и Master-Slave
  • Мигриране на данни в режим на клъстер

Мигриране на данни – самостоятелен и главен-подчинен

В този раздел ще ви покажем как да мигрирате данните си в тези различни настройки:

  • Самостоятелен към самостоятелен
  • От главен роб към главен роб
  • Самостоятелно към главен-подчинен (и обратно)

1. Съберете информация

Отбележете следната информация от раздела Преглед на страницата с подробности за клъстера както от вашия източник, така и от целевия клъстер:

  • Име на хост :Низът за връзка е във формат [име на хост:порт]. Трябва да изглежда така:EX-redms-00-redis-master.example.domain.io
    • (В случай на клъстер Master-Slave, ние ще се свържем с главния).
  • Пристанище :6379
  • Парола :Можете да намерите паролата си и да я нулирате от конзолата под Идентификационни данни

2. Редактиране на конфигурационния файл

Отворете вашия файл “redis-shake.conf” в основната папка и редактирайте следните променливи:

source.type =самостоятелен
source.address =:6379
source.password_raw =

target.type =самостоятелен
target.address =:6379
target.password_raw =

3. Синхронизиране на данни

Изпълнете следната команда, за да синхронизирате данните между изходния и целевия клъстер:

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

4. Изчакайте регистрационните файлове

Изчакайте, докато видите следната информация в регистрационните файлове:

Синхронизиране на rdb готово.

Това означава, че пълната синхронизация е завършена и започва постепенното синхронизиране.

5. Спиране на инкременталната синхронизация

Ако +writeBytes=0 се вижда дълго време, тогава това означава, че не се увеличават нови данни. Можете да спрете постепенното синхронизиране, като натиснете Ctrl+C . Трябва да изглежда така:

синхронизиране:+forwardCommands=0 +filterCommands=0 +writeBytes=0

6. Съвпадение на броя на клавишите

Сега следвайте тази връзка към нашия помощен документ, който ви помага да се свържете с двата клъстера с помощта на redis-cli и след това да съпоставите броя на ключовете между вашите клъстери с помощта на info keyspace команда и на двата клъстера.

И това е всичко! Вече успешно мигрирахте данни от един клъстер в друг с помощта на Redis-Shake. Ако имате клъстери в режим на клъстер, може да искате да разгледате следващия раздел в това ръководство, за да видите какво трябва да направите, ако използвате такъв тип клъстер.

Мигриране на данни – режим на клъстер

В този раздел ще ви покажем как да мигрирате данни от едно внедряване на Redis в клъстерен режим към друг клъстер.

1. Съберете информация

Отбележете следната информация от раздела Преглед на страницата с подробности за клъстера както от вашия източник, така и от целевия клъстер:

  • Име на хост :Низът на връзката е във формат [име на хост1:порт], [име на хост2:порт], [име на хост3:порт]. Трябва да изглежда така:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- master.example.domain.io
  • Пристанище :6379
  • Парола :Можете да намерите паролата си и да я нулирате от конзолата под Идентификационни данни

2. Редактиране на конфигурационния файл

Отворете вашия файл “redis-shake.conf” в основната папка и редактирайте следните променливи:

source.type =клъстер
source.address =:6379;:6379;:6379
source.password_raw =

target.type =самостоятелен
target.address =:6379;:6379;:6379
target.password_raw =

3. Синхронизиране на данни

Изпълнете следната команда, за да синхронизирате данните между изходния и целевия клъстер:

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

4. Изчакайте регистрационните файлове

Изчакайте, докато видите следната информация в регистрационните файлове:

Синхронизиране на rdb готово.

Това означава, че пълната синхронизация е завършена и започва постепенното синхронизиране.

5. Спиране на инкременталната синхронизация

Ако +writeBytes=0 се вижда дълго време, тогава това означава, че не се увеличават нови данни. Можете да спрете постепенното синхронизиране, като натиснете Ctrl+C . Трябва да изглежда така:

синхронизиране:+forwardCommands=0 +filterCommands=0 +writeBytes=0

6. Съвпадение на броя на клавишите

Сега следвайте тази връзка към нашия помощен документ, който ви помага да се свържете с двата клъстера с помощта на redis-cli и след това да съпоставите броя на ключовете между вашите клъстери с помощта на info keyspace команда и на двата клъстера.

И това е всичко! Вече успешно мигрирахте данни от един клъстер в режим на клъстер в друг с помощта на Redis-Shake. За повече информация относно Redis-Shake и неговите възможности, посетете тяхната страница в GitHub, за да научите повече и да получите най-новата версия.

Интересувате се да научите повече за ScaleGrid?

За да научите повече за това как ScaleGrid Hosting за Redis™* може да ви помогне да управлявате вашите бази данни, разгледайте нашата страница ScaleGrid Service for Redis™. Вижте как ScaleGrid хостингът за Redis™ може да ви позволи да се съсредоточите повече върху разработването на вашия продукт и по-малко върху управлението на бази данни.

*Redis е търговска марка на Redis Labs Ltd. Всички права върху тях са запазени за Redis Labs Ltd. Всяко използване от ScaleGrid е само за референтни цели и не означава спонсорство, одобрение или връзка между Redis и ScaleGrid.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Най-добрата библиотека Redis за Java

  2. Инсталиране и конфигуриране на Redis в Ubuntu

  3. Python-redis:вземете двоични данни, след като клиентът е бил настроен с decode_responses=True

  4. има ли начин да получа IP на клиента в redis?

  5. Най-добрият начин за съхраняване на Redis ключове