Dela via


Migrera till 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 molntjänst för att Azure Cache for Redis.

Migreringsscenarier

Redis med öppen källkod kan köras i många beräkningsmiljöer. Vanliga exempel är:

  • Lokalt – Redis-cacheminnen som körs i privata datacenter.
  • Molnbaserade virtuella datorer – Redis-cacheminnen som körs på virtuella Azure-datorer, AWS EC2 och så vidare.
  • Värdtjänster – Hanterade Redis-tjänster som AWS ElastiCache.

Om du har en sådan cache kan du flytta den till Azure Cache for Redis med minimal avbrotts- eller stilleståndstid.

Om du vill flytta från en Azure-region till en annan rekommenderar vi att du ser artikeln Flytta Azure Cache for Redis instanser till olika regioner.

Migreringsalternativ

Det finns olika sätt att växla från ett cacheminne till ett annat. Beroende på var din cache är och hur ditt program interagerar med den är en metod mer användbar än de andra. Några av de migreringsstrategier som används ofta beskrivs nedan.

Alternativ Fördelar Nackdelar
Skapa en ny cache Enklast att implementera. Du måste fylla i data på nytt i den nya cachen, vilket kanske inte fungerar med många program.
Exportera och importera data via RDB-fil Kompatibel med alla Redis-cacheminnen i allmänhet. Vissa data kan gå förlorade om de skrivs till den befintliga cachen när RDB-filen har genererats.
Dubbelskrivning av data till två cacheminnen Ingen dataförlust eller stilleståndstid. Oavbrutna åtgärder i det befintliga cacheminnet. Enklare testning av den nya cachen. Behöver två cacheminnen under en längre tid.
Migrera data programmatiskt Fullständig kontroll över hur data flyttas. Kräver anpassad kod.

Skapa en ny Azure Cache for Redis

Den här metoden är tekniskt sett inte en migrering. Om det inte är något problem att förlora data är det enklaste sättet att gå över till Azure Cache for Redis att skapa en cacheinstans och ansluta ditt program till den. Om du till exempel använder Redis som en cache med databasposter kan du enkelt återskapa cachen från grunden.

Allmänna steg för att implementera det här alternativet är:

  1. Skapa en ny Azure Cache for Redis instans.

  2. Uppdatera programmet så att det använder den nya instansen.

  3. Ta bort den gamla Redis-instansen.

Exportera data till en RDB-fil och importera dem till Azure Cache for Redis

Redis med öppen källkod definierar en standardmekanism för att ta en ögonblicksbild av en cacheminnesdatauppsättning och spara den i en fil. Den här filen, som kallas RDB, kan läsas av en annan Redis-cache. Azure Cache for Redis premiumnivå stöder import av data till en cacheinstans via RDB-filer. Du kan använda en RDB-fil för att överföra data från en befintlig cache till Azure Cache for Redis.

Viktigt

RDB-filformatet kan ändras mellan Redis-versioner och kanske inte bibehåller bakåtkompatibilitet. Redis-versionen av cachen som du exporterar från bör vara lika med eller mindre än den version som tillhandahålls av Azure Cache for Redis.

Allmänna steg för att implementera det här alternativet är:

  1. Skapa en ny Azure Cache for Redis instans på premiumnivån som har samma storlek som (eller större än) det befintliga cacheminnet.

  2. Spara en ögonblicksbild av den befintliga Redis-cachen. Du kan konfigurera Redis att spara ögonblicksbilder regelbundet eller köra processen manuellt med hjälp av kommandona SAVE eller BGSAVE . RDB-filen heter "dump.rdb" som standard och finns på den sökväg som anges i konfigurationsfilen redis.conf .

    Anteckning

    Om du migrerar data inom Azure Cache for Redis kan du läsa de här anvisningarna om hur du exporterar en RDB-fil eller använder PowerShell Export-cmdleten i stället.

  3. Kopiera RDB-filen till ett Azure Storage-konto i den region där din nya cache finns. Du kan använda AzCopy för den här uppgiften.

  4. Importera RDB-filen till den nya cachen med hjälp av dessa importinstruktioner eller PowerShell Import-cmdleten.

  5. Uppdatera programmet så att det använder den nya cacheinstansen.

Skriv till två Redis-cacheminnen samtidigt under migreringsperioden

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. Programmet läser fortfarande data från det befintliga cacheminnet från början. När den nya cachen har nödvändiga data växlar du programmet till cachen och drar tillbaka den gamla. Anta till exempel att du använder Redis som ett sessionsarkiv och att programsessionerna är giltiga i sju dagar. När du har skrivit till de två cacheminnena i en vecka är du säker på att den nya cachen innehåller all sessionsinformation som inte har upphört att gälla. Du kan lita på det från och med då utan att behöva bekymra dig om dataförlust.

Allmänna steg för att implementera det här alternativet är:

  1. Skapa en ny Azure Cache for Redis instans på premiumnivån som har samma storlek som (eller större än) det befintliga cacheminnet.

  2. Ändra programkod för att skriva till både den nya och den ursprungliga instansen.

  3. Fortsätt att läsa data från den ursprungliga instansen tills den nya instansen är tillräckligt fylld med data.

  4. Uppdatera programkoden till att endast läsa och skriva från den nya instansen.

  5. Ta bort den ursprungliga instansen.

Migrera programmatiskt

Du kan skapa en anpassad migreringsprocess genom att programmatiskt läsa data från en befintlig cache och skriva dem till 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 for Redis instans till en annan. En kompilerad version är också tillgänglig. Källkoden kan också vara en användbar guide för att skriva ett eget migreringsverktyg.

Anteckning

Det här verktyget stöds inte officiellt av Microsoft.

Allmänna steg för att implementera det här alternativet är:

  1. Skapa en virtuell dator i den region där det befintliga cacheminnet finns. Om datauppsättningen är stor väljer du en relativt kraftfull virtuell dator för att minska kopieringstiden.

  2. Skapa en ny Azure Cache for Redis instans.

  3. Rensa data från den nya cachen för att säkerställa att den är tom. Det här steget krävs eftersom kopieringsverktyget i sig inte skriver över någon befintlig nyckel i målcachen.

    Viktigt

    Se till att INTE tömma från källcachen.

  4. Använd ett program som verktyget med öppen källkod ovan för att automatisera kopieringen av data från källcachen till målet. Kom ihåg att kopieringsprocessen kan ta en stund att slutföra beroende på storleken på datauppsättningen.

Nästa steg

Läs mer om Azure Cache for Redis funktioner.