Миграция в службу "Кэш Azure для Redis"

В этой статье описывается ряд методов переноса существующего кэша Redis, работающего локально или в другой облачной службе, в кэш Azure для Redis.

Сценарии миграции

Redis с открытым исходным кодом может выполняться во многих вычислительных средах. Ниже приведены распространенные примеры.

  • Локальные — кэши Redis, выполняемые в частных центрах обработки данных.
  • Облачные виртуальные машины — кэши Redis, работающие на виртуальных машинах Azure, AWS EC2 и т. д.
  • Службы размещения — управляемые службы Redis, такие как AWS ElastiCache.

При наличии такого кэша вы можете переместить его в кэш Azure для Redis с минимальными нарушениями работы и простоями.

Если вы хотите перейти из одного региона Azure в другой, мы рекомендуем ознакомиться со статьей Перемещение экземпляров кэша Azure для Redis в другие регионы.

Варианты переноса

Существует несколько способов перехода из одного кэша в другой. Выбирайте метод в зависимости от того, где находится кэш и как приложение взаимодействует с ним. Ниже описаны некоторые из часто используемых стратегий миграции.

Параметр Преимущества Недостатки
Создание кэша Простейший способ реализации. Необходимо повторно заполнить данные в новом кэше, который может не работать с многими приложениями.
Экспорт и импорт данных через файл RDB Совместимость в целом с любым кэшем Redis. Некоторые данные могут быть потеряны, если они записаны в существующий кэш после создания файла RDB.
Запись данных в два кэша Не приводит к потерям данных и простоям. Непрерывные операции с существующим кэшем. Упрощенное тестирование нового кэша. Требуется два кэша на продолжительный период времени.
Программная миграция данных Полный контроль над перемещением данных. Требуется специальный код.

Создание нового кэша Azure для Redis

Этот подход технически не является миграцией. Если потеря данных не является проблемой, самый простой способ переноса данных в кэш Azure для Redis — это создать экземпляр кэша и подключить к нему приложение. Например, если в качестве кэша с параллельной выборкой записей базы данных используется Redis, можно легко перестроить кэш с нуля.

Ниже приведены общие действия для реализации этого варианта.

  1. Создает экземпляр кэша Redis для Azure.

  2. Обновите приложение, чтобы использовать новый экземпляр.

  3. Удалите старый экземпляр Redis.

Выполните экспорт данных в файл RDB и их импорт в кэш Azure для Redis

Redis с открытым исходным кодом определяет стандартный механизм создания моментального снимка набора данных в памяти кэша и его сохранения в файле. Этот файл, называемый RDB, может быть прочитан другим кэшем Redis. Кэш Azure для Redis уровня «Премиум» поддерживает импорт данных в экземпляр кэша посредством файлов RDB. Файл RDB можно использовать для перемещения данных из существующего кэша в кэш Azure для Redis.

Важно!

Формат файлов RDB может отличаться в разных версиях Redis и не поддерживать обратную совместимость. Версия кэша Redis, из которого выполняется экспорт, должна быть больше или равна версии, указанной в кэше Azure для Redis.

Ниже приведены общие действия для реализации этого варианта.

  1. Создайте новый экземпляр кэша Azure для Redis на уровне «Премиум», его размер должен быть равен (или больше) размеру существующего кэша.

  2. Сохраните моментальный снимок существующего кэша Redis. Можно настроить Redis для периодического сохранения моментальных снимков или запускать процесс вручную с помощью команд SAVE или BGSAVE. Файл RDB по умолчанию имеет имя dump. rdb и будет сохранен по пути, указанному в файле конфигурации redis. conf.

    Примечание

    Если вы выполняете миграцию данных в кэше Azure для Redis, см. инструкции по экспорту файла RDB или использованию командлета PowerShell Export.

  3. Скопируйте файл RDB в учетную запись хранения Azure в регионе, где находится новый кэш. Для этой задачи можно использовать AZCopy.

  4. Импортируйте файл RDB в новый кэш, используя инструкции по импорту или командлет PowerShell Import.

  5. Обновите приложение, чтобы использовать новый экземпляр кэша.

Запись в два кэша Redis одновременно в течение периода миграции

Вместо перемещения данных непосредственно между кэшами вы можете использовать приложение для записи данных в существующий кэш и в новый, который вы настраиваете. Приложение будет по-прежнему считывать данные из изначально существовавшего кэша. Когда новый кэш будет содержать необходимые данные, переключите приложение на этот кэш и исключите старый кэш. Предположим, например, что вы используете Redis в качестве хранилища сеансов, и сеансы приложения действительны в течение семи дней. После записи в два кэша в течение недели вы увидите, что новый кэш содержит все сведения о сеансе с неистекшим сроком хранения. С этого момента вы можете уверенно использовать его, не беспокоясь о потере данных.

Ниже приведены общие действия для реализации этого варианта.

  1. Создайте новый экземпляр кэша Azure для Redis на уровне «Премиум», его размер должен быть равен (или больше) размеру существующего кэша.

  2. Измените код приложения, чтобы вести запись как в новый, так и в исходный экземпляр.

  3. Продолжайте считывать данные из исходного экземпляра, пока в новом экземпляре не накопится достаточно данных.

  4. Обновите код приложения, чтобы производить считывание и запись только с использованием нового экземпляра.

  5. Удалите исходный экземпляр.

Миграция программными средствами

Можно создать настраиваемый процесс миграции путем программного считывания данных из существующего кэша и их записи в кэш Azure для Redis. С помощью этого средства с открытым кодом можно копировать данные из одного экземпляра кэша Azure для Redis в другой. Также доступна скомпилированная версия. Вы также можете найти исходный код и опираться на него при написании собственного средства миграции.

Примечание

Это средство официально не поддерживается корпорацией Майкрософт.

Ниже приведены общие действия для реализации этого варианта.

  1. Создайте виртуальную машину в регионе, где находится существующий кэш. Если набор данных большой, выберите относительно мощную виртуальную машину, чтобы сократить время копирования.

  2. Создает экземпляр кэша Redis для Azure.

  3. Освободите новый кэш, чтобы он был пустой. Этот шаг является обязательным, поскольку само средство копирования не перезаписывает существующий ключ в целевом кэше.

    Важно!

    Будьте внимательны, НЕ УДАЛЯЙТЕ данные из исходного кэша.

  4. Используйте приложение, такое как средство с открытым исходным кодом, приведенное выше, чтобы автоматизировать копирование данных из исходного кэша в целевой объект. Помните, что процесс копирования может занять некоторое время в зависимости от размера набора данных.

Дальнейшие действия

Дополнительные сведения о функциях кэша Azure для Redis.