Migrera till Azure Cache for RedisMigrate to Azure Cache for Redis

Den här artikeln beskriver ett antal metoder för att migrera en befintlig Redis-cache som körs lokalt eller i en annan moln tjänst till Azure cache för 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.

MigreringsscenarierMigration scenarios

Redis med öppen källkod kan köras i många beräknings miljöer.Open-source Redis can run in many compute environments. Vanliga exempel är:Common examples include:

  • Lokala Redis-cacheminnen som körs i privata data Center.On-premises - Redis caches running in private datacenters.
  • Molnbaserade virtuella datorer – Redis cacheminnen som körs på virtuella Azure-datorer, AWS EC2 och så vidare.Cloud-based VMs - Redis caches running on Azure VMs, AWS EC2, and so on.
  • Värd tjänster – hanterade Redis-tjänster som AWS ElastiCache.Hosting services - Managed Redis services such as AWS ElastiCache.
  • Olika regioner – Redis-cache finns i en annan Azure-region.Different regions - Redis caches located in another Azure region.

Om du har ett sådant cacheminne kanske du kan flytta det till Azure cache för Redis med minimala avbrott eller stillestånds tid.If you have such a cache, you may be able to move it to Azure Cache for Redis with minimal interruption or downtime.

MigreringsalternativMigration options

Det finns olika sätt på vilka du kan växla från ett cacheminne till en annan.There are different ways that you can switch from one cache to another. Beroende på var cachen är och hur ditt program interagerar med det, är en metod mer användbar än de andra.Depending on where your cache is and how your application interacts with it, one method will be more useful than the others. Några av de ofta använda migrations strategierna beskrivs nedan.Some of the frequently used migration strategies are detailed below.

AlternativOption FördelarAdvantages NackdelarDisadvantages
Skapa en ny cacheCreate a new cache Enklaste att implementera.Simplest to implement. Du måste fylla i data till det nya cacheminnet, vilket kanske inte fungerar med många program.Need to repopulate data to the new cache, which may not work with many applications.
Exportera och importera data via RDB-filExport and import data via RDB file Är kompatibel med alla Redis-cache i allmänhet.Compatible with any Redis cache generally. Vissa data kan gå förlorade om de skrivs till den befintliga cachen när RDB-filen har genererats.Some data could be lost, if they're written to the existing cache after the RDB file is generated.
Data med dubbel skrivning till två cacheminnenDual-write data to two caches Ingen data förlust eller stillestånds tid.No data loss or downtime. Oavbruten åtgärd i det befintliga cacheminnet.Uninterrupted operations of the existing cache. Enklare testning av det nya cacheminnet.Easier testing of the new cache. Behöver två cacheminnen under en längre tids period.Needs two caches for an extended period of time.
Migrera data program mässigtMigrate data programmatically Fullständig kontroll över hur data flyttas.Full control over how data are moved. Anpassad kod krävs.Requires custom code.

Skapa en ny Azure-cache för RedisCreate a new Azure Cache for Redis

Den här metoden är tekniskt sett inte en migrering.This approach technically isn't a migration. Om det inte är något problem att förlora data är det enklaste sättet att flytta till Azure cache för Redis att skapa en cache-instans och ansluta ditt program till den.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. Om du till exempel använder Redis som en fristående cache med databas poster kan du enkelt återskapa cacheminnet från grunden.For example, if you use Redis as a look-aside cache of database records, you can easily rebuild the cache from scratch.

Allmänna steg för att implementera det här alternativet är:General steps to implement this option are:

  1. Skapa en ny Azure-cache för Redis-instans.Create a new Azure Cache for Redis instance.

  2. Uppdatera programmet så att det använder den nya instansen.Update your application to use the new instance.

  3. Ta bort den gamla Redis-instansen.Delete the old Redis instance.

Exportera data till en RDB-fil och importera den till Azure cache för RedisExport data to an RDB file and import it into Azure Cache for Redis

Redis med öppen källkod definierar en standardmekanism för att ta en ögonblicks bild av en caches minnes intern data uppsättning och spara den i en fil.Open-source Redis defines a standard mechanism for taking a snapshot of a cache's in-memory dataset and saving it to a file. Den här filen, som kallas RDB, kan läsas av en annan Redis-cache.This file, called RDB, can be read by another Redis cache. Azure cache för Redis Premium-nivån stöder import av data till en cache-instans via RDB-filer.Azure Cache for Redis premium tier supports importing data into a cache instance via RDB files. Du kan använda en RDB-fil för att överföra data från ett befintligt cacheminne till Azure cache för Redis.You can use an RDB file to transfer data from an existing cache to Azure Cache for Redis.

Viktigt

RDB-filformatet kan ändras mellan Redis-versioner och kan inte upprätthålla bakåtkompatibilitet.RDB file format can change between Redis versions and may not maintain backward-compatibility. Redis-versionen för det cacheminne som du exporterar från måste vara lika med eller lägre än den version som tillhandahålls av Azure cache för 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.

Allmänna steg för att implementera det här alternativet är:General steps to implement this option are:

  1. Skapa en ny Azure-cache för Redis-instans på Premium-nivån som har samma storlek som (eller större än) det befintliga cacheminnet.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. Spara en ögonblicks bild av den befintliga Redis-cachen.Save a snapshot of the existing Redis cache. Du kan Konfigurera Redis för att spara ögonblicks bilder regelbundet eller köra processen manuellt med hjälp av Spara -eller BGSAVE -kommandona.You can configure Redis to save snapshots periodically, or run the process manually using the SAVE or BGSAVE commands. RDB-filen heter "dump. RDB" som standard och kommer att finnas på den sökväg som anges i konfigurations filen 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.

    Anteckning

    Om du migrerar data i Azure cache för Redis kan du läsa följande instruktioner om hur du exporterar en RDB-fil eller använder PowerShell Export-cmdleten i stället.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. Kopiera RDB-filen till ett Azure Storage-konto i den region där det nya cacheminnet finns.Copy the RDB file to an Azure storage account in the region where your new cache is located. Du kan använda AzCopy för den här uppgiften.You can use AzCopy for this task.

  4. Importera RDB-filen till den nya cachen med hjälp av import instruktionerna eller PowerShell-import-cmdleten.Import the RDB file into the new cache using these import instructions or the PowerShell Import cmdlet.

  5. Uppdatera programmet så att det använder den nya cache-instansen.Update your application to use the new cache instance.

Skriv till två Redis-cache samtidigt under migrerings periodenWrite to two Redis caches simultaneously during migration period

I stället för att flytta data direkt mellan cacheminnen kan du använda ditt program för att skriva data till både en befintlig cache och en ny som du konfigurerar.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. Programmet kommer fortfarande att läsa data från den befintliga cachen från början.The application will still read data from the existing cache initially. När den nya cachen har nödvändiga data växlar du programmet till denna cache och drar tillbaka det gamla.When the new cache has the necessary data, you switch the application to that cache and retire the old one. Anta till exempel att du använder Redis som ett migreringsarkiv och att programsessionerna är giltiga i sju dagar.Let's say, for example, you use Redis as a session store and the application sessions are valid for seven days. När du har skrivit till de två cacheminnena i en vecka är du säker på att den nya cachen innehåller all information om session som inte har gått ut.After writing to the two caches for a week, you'll be certain the new cache contains all non-expired session information. Du kan på ett säkert sätt lita på den från den punkten utan att behöva oroa dig för data förlust.You can safely rely on it from that point onward without concern over data loss.

Allmänna steg för att implementera det här alternativet är:General steps to implement this option are:

  1. Skapa en ny Azure-cache för Redis-instans på Premium-nivån som har samma storlek som (eller större än) det befintliga cacheminnet.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. Ändra program kod för att skriva till både nya och ursprungliga instanser.Modify application code to write to both the new and the original instances.

  3. Fortsätt att läsa data från den ursprungliga instansen tills den nya instansen är tillräckligt ifylld med data.Continue reading data from the original instance until the new instance is sufficiently populated with data.

  4. Uppdatera program koden för att läsa och skriva från den nya instansen.Update the application code to reading and writing from the new instance only.

  5. Ta bort den ursprungliga instansen.Delete the original instance.

Migrera program mässigtMigrate programmatically

Du kan skapa en anpassad migreringsprocessen genom att läsa data program mässigt från en befintlig cache och skriva dem i Azure cache för Redis.You can create a custom migration process by programmatically reading data from an existing cache and writing them into Azure Cache for Redis. Det här verktyget med öppen källkod kan användas för att kopiera data från en Azure-cache för Redis-instans till en annan.This open-source tool can be used to copy data from one Azure Cache for Redis instance to another. Det här verktyget är användbart för att flytta data mellan cache-instanser i olika Azure cache-regioner.This tool is useful for moving data between cache instances in different Azure Cache regions. En kompilerad version är också tillgänglig.A compiled version is available as well. Du kan också hitta käll koden som en användbar guide för att skriva ditt eget Migreringsverktyg.You may also find the source code to be a useful guide for writing your own migration tool.

Anteckning

Det här verktyget stöds inte officiellt av Microsoft.This tool isn't officially supported by Microsoft.

Allmänna steg för att implementera det här alternativet är:General steps to implement this option are:

  1. Skapa en virtuell dator i den region där den befintliga cachen finns.Create a VM in the region where the existing cache is located. Om din data uppsättning är stor väljer du en relativt kraftfull virtuell dator för att minska kopierings tiden.If your dataset is large, choose a relatively powerful VM to reduce copying time.

  2. Skapa en ny Azure-cache för Redis-instans.Create a new Azure Cache for Redis instance.

  3. Rensa data från det nya cacheminnet för att se till att den är tom.Flush data from the new cache to ensure that it's empty. Det här steget är obligatoriskt eftersom själva kopierings verktyget inte skriver över en befintlig nyckel i mål-cachen.This step is required because the copy tool itself doesn't overwrite any existing key in the target cache.

    Viktigt

    Se till att du inte tömmer käll-cachen.Make sure to NOT flush from the source cache.

  4. Använd ett program som till exempel verktyget med öppen källkod ovan för att automatisera kopieringen av data från käll-cachen till målet.Use an application such as the open-source tool above to automate the copying of data from the source cache to the target. Kom ihåg att kopierings processen kan ta en stund att slutföra beroende på storleken på din data uppsättning.Remember that the copy process could take a while to complete depending on the size of your dataset.

Nästa stegNext steps

Läs mer om Azure cache för Redis-funktioner.Learn more about Azure Cache for Redis features.