Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается несколько сценариев миграции кэша Azure для Redis. Кэши Redis с открытым исходным кодом, работающие на локальных или облачных виртуальных машинах, а также размещенные кэши с других облачных платформ, можно мигрировать в Azure Cache для Redis.
Вы также можете перенести один экземпляр кэша Azure для Redis в другой экземпляр. Если вам нужно переместить кэш Redis Azure из одного региона Azure в другой, см. статью "Перемещение экземпляров кэша Azure для Redis" в разные регионы.
Redis с открытым исходным кодом может выполняться во многих вычислительных средах, таких как частные локальные центры обработки данных или облачные виртуальные машины. Другие платформы размещения, такие как Amazon Web Services (AWS), размещают службы кэша Redis, такие как AWS ElastiCache. Обычно эти кэши Redis можно перенести в кэш Redis для Azure с минимальным прерыванием или простоем.
Варианты переноса
Миграция из одного кэша в другой зависит от того, где существует кэш и как приложение взаимодействует с ним. В следующей таблице перечислены часто используемые стратегии миграции.
Вариант | Достоинства | Недостатки |
---|---|---|
Создание кэша | Простейший способ реализации. | Должен повторно заполнить данные в новый кэш, который может не работать с некоторыми приложениями. |
Экспорт и импорт данных с помощью файла базы данных только для чтения (RDB). | Совместим с любым кэшем Redis. | Данные, записанные в существующий кэш после создания файла RDB, могут быть потеряны. |
Записывайте данные в два кэша. | Нет потери данных или простоя, не прерывается операций кэша и упрощается тестирование. | Требуется два кэша в течение длительного периода времени. |
Перенос данных программным способом. | Полный контроль над перемещением данных. | Требуется специальный код. |
Создание кэша
Если непрерывность операций и потенциальная потеря данных не являются проблемами, самый простой способ переместить данные в Azure Cache для Redis — это создать экземпляр кэша Redis в Azure и подключить к нему ваше приложение. Например, если использовать Redis в качестве вспомогательного кэша для записей базы данных, можно легко перестроить кэш с нуля. Этот подход технически не является миграцией.
Ниже приведены общие действия для реализации этого варианта.
- Создайте новый экземпляр Azure Cache для Redis. При необходимости попробуйте использовать Управляемый Redis в Azure.
- Обновите приложение, чтобы использовать новый экземпляр Redis Azure.
- Удалите старый экземпляр Redis.
Выполните экспорт данных в файл RDB и их импорт в кэш Azure для Redis
Redis с открытым исходным кодом определяет стандартный механизм для создания моментального снимка набора данных кэша в памяти и сохранения его в файле RDB, с которым может считываться любой кэш Redis. Azure Cache для Redis уровень Premium поддерживает импорт данных в кэш-экземпляр с помощью RDB-файла. Файл RDB можно использовать для передачи данных из существующего кэша в кэш Azure для Redis.
Внимание
Формат файла RDB может измениться между версиями Redis и может не поддерживать обратную совместимость. Версия кэша Redis, которую вы экспортируете, должна быть равна или ниже версии, которую предоставляет кэш Azure для Redis.
Ниже приведены общие действия для реализации этого варианта.
- Сохраните моментальный снимок существующего кэша Redis. Вы можете настроить Redis для периодического сохранения моментальных снимков или сохранить их вручную с помощью команд SAVE или BGSAVE . По умолчанию файл RDB называется dump.rdb и находится по пути, указанному в файле конфигурации redis.conf .
- Создайте новый экземпляр кэша Azure уровня "Премиум" для Redis, который по крайней мере больше, чем существующий кэш.
- Скопируйте файл RDB в учетную запись хранения Azure в регионе, где находится новый кэш. Вы можете использовать
AzCopy
для этой задачи. - Импортируйте файл RDB в новый кэш. Вы также можете использовать командлет PowerShell Import-AzRedisCache.
- Обновите приложение, чтобы использовать новый экземпляр кэша.
Примечание.
Чтобы перенести данные из другого экземпляра Azure Redis, сначала экспортируйте файл RDB из этого экземпляра или используйте командлет PowerShell Export-AzRedisCache .
Запись в два кэша Redis во время миграции
Вместо перемещения данных между кэшами можно временно настроить приложение для записи данных как в существующий кэш, так и в новый. Приложение считывает данные из существующего кэша изначально. Когда новый кэш имеет достаточно данных, вы можете переключить приложение в этот кэш и удалить старый.
Например, предположим, что вы используете Redis в качестве хранилища сеансов, и срок действия сеансов приложения истекает через семь дней. После записи в оба кэша в течение семи дней вы знаете, что новый кэш содержит все неэкспирированные сведения о сеансе, и вы можете безопасно полагаться на него с этого момента. Затем можно удалить старый кэш.
Ниже приведены общие действия для реализации этого варианта.
- Создайте новый экземпляр кэша Azure уровня "Премиум" для Redis, который по крайней мере больше, чем существующий кэш.
- Измените код приложения для записи как в новые, так и в исходные экземпляры.
- Продолжайте использовать данные из исходного экземпляра, пока новый экземпляр не будет достаточно заполнен данными.
- Обновите код приложения, чтобы производить считывание и запись только с использованием нового экземпляра.
- Удалите исходный экземпляр.
Миграция программными средствами
Вы можете создать пользовательскую миграцию, программно считывая данные из существующего кэша и записывая их в кэш Azure для Redis. Например, можно использовать инструмент с открытым исходным кодом redis-copy для копирования данных из одного экземпляра Redis в другой.
Исходный код может быть полезным руководством по написанию собственного средства миграции. Также доступна скомпилированная версия .
Примечание.
Это средство официально не поддерживается корпорацией Майкрософт.
Ниже приведены общие действия для реализации этого варианта.
- Создайте виртуальную машину Azure в том же регионе, что и существующий кэш. Если набор данных большой, выберите мощную виртуальную машину, чтобы сократить время копирования.
- Создайте новый экземпляр кэша Azure для Redis и убедитесь, что он пуст. Средство
redis-copy
не перезаписывает существующие ключи в целевом кэше. - Используйте приложение, например
redis-copy
, чтобы автоматизировать копирование данных из исходного кэша в целевой кэш. Процесс копирования может занять некоторое время в зависимости от размера набора данных.