Migrowanie do usługi Azure Cache for RedisMigrate to Azure Cache for Redis

W tym artykule opisano szereg metod migracji istniejącej pamięci podręcznej Redis działającej lokalnie lub w innej usłudze w chmurze do usługi Azure cache dla Redis.This article describes a number of approaches to migrate an existing Redis cache running on-premises or in another cloud service to Azure Cache for Redis.

Scenariusze migracjiMigration scenarios

Redis Open Source można uruchamiać w wielu środowiskach obliczeniowych.Open-source Redis can run in many compute environments. Typowe przykłady obejmują:Common examples include:

  • Pamięci podręczne Redis lokalnie działające w prywatnych centrach danych.On-premises - Redis caches running in private datacenters.
  • Maszyny wirtualne oparte na chmurze — Redis pamięci podręczne działające na maszynach wirtualnych platformy Azure, AWS EC2 i tak dalej.Cloud-based VMs - Redis caches running on Azure VMs, AWS EC2, and so on.
  • Usługi hostingowe — zarządzane usługi Redis, takie jak AWS ElastiCache.Hosting services - Managed Redis services such as AWS ElastiCache.
  • Różne regiony — Redis pamięci podręcznej znajdujące się w innym regionie świadczenia usługi Azure.Different regions - Redis caches located in another Azure region.

Jeśli masz taką pamięć podręczną, możesz przenieść ją do usługi Azure cache for Redis z minimalnym zakłóceniem lub przestojem.If you have such a cache, you may be able to move it to Azure Cache for Redis with minimal interruption or downtime.

Opcje migracjiMigration options

Istnieją różne sposoby przełączania z jednej pamięci podręcznej na inną.There are different ways that you can switch from one cache to another. W zależności od lokalizacji pamięci podręcznej i sposobu, w jaki aplikacja współpracuje z nią, jedna metoda będzie bardziej użyteczna niż inne.Depending on where your cache is and how your application interacts with it, one method will be more useful than the others. Niektóre z często używanych strategii migracji przedstawiono poniżej.Some of the frequently used migration strategies are detailed below.

OpcjaOption ZaletyAdvantages WadyDisadvantages
Tworzenie nowej pamięci podręcznejCreate a new cache Najprostsza do zaimplementowania.Simplest to implement. Należy ponownie wypełnić dane do nowej pamięci podręcznej, co może nie współpracować z wieloma aplikacjami.Need to repopulate data to the new cache, which may not work with many applications.
Eksportuj i Importuj dane za pomocą pliku RDBExport and import data via RDB file Ogólnie zgodne z dowolnymi Redis pamięci podręcznej.Compatible with any Redis cache generally. Niektóre dane mogą zostać utracone, jeśli są zapisywane w istniejącej pamięci podręcznej po wygenerowaniu pliku RDB.Some data could be lost, if they're written to the existing cache after the RDB file is generated.
Podwójne zapis danych do dwóch pamięci podręcznychDual-write data to two caches Brak utraty danych ani przestojów.No data loss or downtime. Nieprzerwane operacje istniejącej pamięci podręcznej.Uninterrupted operations of the existing cache. Łatwiejsze testowanie nowej pamięci podręcznej.Easier testing of the new cache. Potrzebuje dwóch pamięci podręcznych przez dłuższy czas.Needs two caches for an extended period of time.
Programistyczne Migrowanie danychMigrate data programmatically Pełna kontrola nad sposobem przenoszenia danych.Full control over how data are moved. Wymaga kodu niestandardowego.Requires custom code.

Tworzenie nowej pamięci podręcznej platformy Azure dla usługi RedisCreate a new Azure Cache for Redis

To podejście technicznie nie jest migracją.This approach technically isn't a migration. Jeśli utrata danych nie jest istotna, najprostszym sposobem przejścia do usługi Azure cache for Redis jest utworzenie wystąpienia pamięci podręcznej i połączenie z nim aplikacji.If losing data isn't a concern, the easiest way to move to Azure Cache for Redis is to create cache instance and connect your application to it. Na przykład jeśli używasz Redis jako pamięci podręcznej rekordów bazy danych, możesz łatwo ponownie skompilować pamięć podręczną od podstaw.For example, if you use Redis as a look-aside cache of database records, you can easily rebuild the cache from scratch.

Ogólna procedura implementowania tej opcji to:General steps to implement this option are:

  1. Utwórz nowe wystąpienie usługi Azure cache for Redis.Create a new Azure Cache for Redis instance.

  2. Zaktualizuj aplikację tak, aby korzystała z nowego wystąpienia.Update your application to use the new instance.

  3. Usuń stare wystąpienie Redis.Delete the old Redis instance.

Eksportuj dane do pliku RDB i zaimportuj je do usługi Azure cache for RedisExport data to an RDB file and import it into Azure Cache for Redis

Redis typu open source definiuje standardowy mechanizm tworzenia migawek zestawu danych pamięci podręcznej i zapisywania go w pliku.Open-source Redis defines a standard mechanism for taking a snapshot of a cache's in-memory dataset and saving it to a file. Ten plik o nazwie RDB może być odczytywany przez inną pamięć podręczną Redis.This file, called RDB, can be read by another Redis cache. Usługa Azure cache for Redis w warstwie Premium obsługuje importowanie danych do wystąpienia pamięci podręcznej za pośrednictwem plików RDB.Azure Cache for Redis premium tier supports importing data into a cache instance via RDB files. Plik RDB służy do transferowania danych z istniejącej pamięci podręcznej do usługi Azure cache for Redis.You can use an RDB file to transfer data from an existing cache to Azure Cache for Redis.

Ważne

Format pliku RDB może ulec zmianie między wersjami Redis i nie może zachować zgodności z poprzednimi wersjami.RDB file format can change between Redis versions and may not maintain backward-compatibility. Wersja Redis pamięci podręcznej, z której eksportujesz, powinna być równa lub mniejsza niż wersja udostępniona przez pamięć podręczną platformy Azure dla Redis.The Redis version of the cache you're exporting from should be equal or less than the version provided by Azure Cache for Redis.

Ogólna procedura implementowania tej opcji to:General steps to implement this option are:

  1. Utwórz nowe wystąpienie usługi Azure cache for Redis w warstwie Premium, które ma taki sam rozmiar jak (lub większy) istniejącej pamięci podręcznej.Create a new Azure Cache for Redis instance in the premium tier that is the same size as (or bigger than) the existing cache.

  2. Zapisz migawkę istniejącej pamięci podręcznej Redis.Save a snapshot of the existing Redis cache. Można skonfigurować Redis, aby okresowo zapisywać migawki , lub uruchomić proces ręcznie przy użyciu poleceń Zapisz lub BGSAVE .You can configure Redis to save snapshots periodically, or run the process manually using the SAVE or BGSAVE commands. Plik RDB ma domyślnie nazwę "dump. RDB" i zostanie umieszczony w ścieżce określonej w pliku konfiguracji Redis. conf .The RDB file is named “dump.rdb” by default and will be located at the path specified in the redis.conf configuration file.

    Uwaga

    W przypadku migrowania danych w usłudze Azure cache for Redis zapoznaj się z tymi instrukcjami, jak wyeksportować plik RDB lub użyć polecenia cmdlet eksportu programu PowerShell .If you’re migrating data within Azure Cache for Redis, see these instructions on how to export an RDB file or use the PowerShell Export cmdlet instead.

  3. Skopiuj plik RDB do konta usługi Azure Storage w regionie, w którym znajduje się nowa pamięć podręczna.Copy the RDB file to an Azure storage account in the region where your new cache is located. Dla tego zadania można użyć AzCopy.You can use AzCopy for this task.

  4. Zaimportuj plik RDB do nowej pamięci podręcznej za pomocą tych instrukcji importu lub polecenia cmdlet Import programu PowerShell.Import the RDB file into the new cache using these import instructions or the PowerShell Import cmdlet.

  5. Zaktualizuj aplikację tak, aby korzystała z nowego wystąpienia pamięci podręcznej.Update your application to use the new cache instance.

Zapisuj do dwóch pamięci podręcznych Redis jednocześnie w okresie migracjiWrite to two Redis caches simultaneously during migration period

Zamiast przenosić dane bezpośrednio między pamięciami podręcznymi, możesz użyć aplikacji do zapisywania danych zarówno w istniejącej pamięci podręcznej, jak i nowej konfiguracji.Rather than moving data directly between caches, you may use your application to write data to both an existing cache and a new one you're setting up. Aplikacja nadal będzie odczytywać dane z istniejącej pamięci podręcznej.The application will still read data from the existing cache initially. Gdy nowa pamięć podręczna ma niezbędne dane, należy przełączyć aplikację do tej pamięci podręcznej i wycofać starą.When the new cache has the necessary data, you switch the application to that cache and retire the old one. Załóżmy na przykład, że używasz Redis jako magazynu sesji, a sesje aplikacji są ważne przez siedem dni.Let's say, for example, you use Redis as a session store and the application sessions are valid for seven days. Po dokonaniu zapisu w dwóch pamięciach podręcznych przez tydzień będziesz mieć pewność, że nowa pamięć podręczna będzie zawierać wszystkie niewygasłe informacje o sesji.After writing to the two caches for a week, you'll be certain the new cache contains all non-expired session information. Możesz bezpiecznie korzystać z niego od tego momentu bez obawy o utratę danych.You can safely rely on it from that point onward without concern over data loss.

Ogólna procedura implementowania tej opcji to:General steps to implement this option are:

  1. Utwórz nowe wystąpienie usługi Azure cache for Redis w warstwie Premium, które ma taki sam rozmiar jak (lub większy) istniejącej pamięci podręcznej.Create a new Azure Cache for Redis instance in the premium tier that is the same size as (or bigger than) the existing cache.

  2. Zmodyfikuj kod aplikacji, aby zapisywać w nowych i oryginalnych wystąpieniach.Modify application code to write to both the new and the original instances.

  3. Kontynuuj odczytywanie danych z oryginalnego wystąpienia, dopóki nowe wystąpienie nie zostanie wystarczająco wypełnione danymi.Continue reading data from the original instance until the new instance is sufficiently populated with data.

  4. Zaktualizuj kod aplikacji, aby czytać i zapisywać tylko z nowego wystąpienia.Update the application code to reading and writing from the new instance only.

  5. Usuń oryginalne wystąpienie.Delete the original instance.

Migrowanie programowoMigrate programmatically

Niestandardowy proces migracji można utworzyć, programowo odczytując dane z istniejącej pamięci podręcznej i pisząc je do usługi Azure cache for Redis.You can create a custom migration process by programmatically reading data from an existing cache and writing them into Azure Cache for Redis. To Narzędzie Open Source może służyć do kopiowania danych z jednej pamięci podręcznej platformy Azure dla wystąpienia Redis do innego.This open-source tool can be used to copy data from one Azure Cache for Redis instance to another. To narzędzie jest przydatne do przemieszczania danych między wystąpieniami pamięci podręcznej w różnych regionach pamięci podręcznej platformy Azure.This tool is useful for moving data between cache instances in different Azure Cache regions. Dostępna jest również skompilowana wersja .A compiled version is available as well. Możesz również znaleźć kod źródłowy, który będzie przydatnym przewodnikiem dotyczącym pisania własnego narzędzia migracji.You may also find the source code to be a useful guide for writing your own migration tool.

Uwaga

To narzędzie nie jest oficjalnie obsługiwane przez firmę Microsoft.This tool isn't officially supported by Microsoft.

Ogólna procedura implementowania tej opcji to:General steps to implement this option are:

  1. Utwórz maszynę wirtualną w regionie, w którym znajduje się istniejąca pamięć podręczna.Create a VM in the region where the existing cache is located. Jeśli zestaw danych jest duży, wybierz stosunkowo wydajną maszynę wirtualną, aby skrócić czas kopiowania.If your dataset is large, choose a relatively powerful VM to reduce copying time.

  2. Utwórz nowe wystąpienie usługi Azure cache for Redis.Create a new Azure Cache for Redis instance.

  3. Opróżniaj dane z nowej pamięci podręcznej, aby upewnić się, że jest ona pusta.Flush data from the new cache to ensure that it's empty. Ten krok jest wymagany, ponieważ samo narzędzie do kopiowania nie zastępuje żadnego istniejącego klucza w docelowej pamięci podręcznej.This step is required because the copy tool itself doesn't overwrite any existing key in the target cache.

    Ważne

    Upewnij się, że nie można opróżnić źródłowej pamięci podręcznej.Make sure to NOT flush from the source cache.

  4. Użyj aplikacji, takiej jak narzędzie typu open source powyżej, aby zautomatyzować kopiowanie danych z źródłowej pamięci podręcznej do obiektu docelowego.Use an application such as the open-source tool above to automate the copying of data from the source cache to the target. Należy pamiętać, że proces kopiowania może zająć trochę czasu w zależności od rozmiaru zestawu danych.Remember that the copy process could take a while to complete depending on the size of your dataset.

Następne krokiNext steps

Dowiedz się więcej o funkcjach usługi Azure cache for Redis.Learn more about Azure Cache for Redis features.