Skapa en ny cache som skalas ut med hjälp av klustring
Klustring aktiveras när cacheminnet skapas från arbetsfönstret när du skapar en ny Azure Cache for Redis.
- Använd snabbstartsguiden Skapa en Redis-cache med öppen källkod för att börja skapa en ny cache med hjälp av Azure-portalen. 
- På fliken Avancerat för en Premium Cache-instans konfigurerar du inställningarna för icke-TLS-port, klustring och datapersistence. Om du vill aktivera klustring väljer du Aktivera. - 
              
                
 - Du kan ha upp till 30 shards i klustret. När du har valt Aktivera skjutreglaget eller skriv ett tal mellan 1 och 30 för Shard-antal och välj OK. - Varje shard är ett primärt/replikcachepar som hanteras av Azure. Cachens totala storlek beräknas genom att antalet shards multipliceras med den cachestorlek som valts på prisnivån. - 
              
                
 - När cachen har skapats ansluter du till den och använder den precis som en icke-grupperad cache. Redis distribuerar data i cache-fragmenten. Om diagnostik är aktiverat samlas mått in separat för varje shard och kan visas i Azure Cache for Redis med hjälp av resursmenyn. 
- Slutför skapandet av cachen med hjälp av snabbstartsguiden. 
Det tar en stund innan cacheminnet skapas. Du kan övervaka förloppet på översiktssidan för Azure Cache for Redis. När Status visas som Körs är cachen redo att användas.
Exempelkod för att arbeta med klustring med StackExchange.Redis-klienten finns i clustering.cs-delen av Hello World-exemplet.
Skala en premiumcache som körs in eller ut
Om du vill ändra klusterstorleken på ett Premium-cacheminne som du skapade tidigare och redan körs med klustring aktiverat väljer du Klusterstorlek på resursmenyn.
              
               
              
              
            
Om du vill ändra klusterstorleken använder du skjutreglaget eller skriver ett tal mellan 1 och 30 i textrutan Antal shard . Välj sedan OK för att spara.
Om du ökar klusterstorleken ökar det maximala dataflödet och cachestorleken. Om du ökar klusterstorleken ökar inte maxantalet anslutningar som är tillgängliga för klienter.
Skala ut och in med PowerShell
Du kan skala ut dina Azure Cache for Redis-instanser med PowerShell med hjälp av cmdleten Set-AzRedisCache när ShardCount egenskapen ändras. I följande exempel visas hur du skalar ut en cache med namnet myCache för att använda tre shards (det vill säga skala ut med en faktor på tre)
   Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -ShardCount 3
Mer information om skalning med PowerShell finns i Skala en Azure Cache for Redis med hjälp av PowerShell.
Skala ut och in med Hjälp av Azure CLI
Om du vill skala dina Azure Cache for Redis-instanser med Azure CLI anropar du kommandot az redis update och använder egenskapen shard-count . I följande exempel visas hur du skalar ut en cache med namnet myCache för att använda tre shards (det vill säga skala ut med en faktor på tre).
az redis update --cluster-name myCache --resource-group myGroup --set shard-count=3
Mer information om skalning med Azure CLI finns i Ändra inställningar för en befintlig Azure Cache for Redis.
Kommentar
När du skalar upp eller ned en cache programmatiskt (t.ex. med PowerShell eller Azure CLI) ignoreras alla maxmemory-reserved eller maxfragmentationmemory-reserved som en del av uppdateringsbegäran. Endast din skalningsändring respekteras. Du kan uppdatera dessa minnesinställningar när skalningsåtgärden har slutförts.
 
När du skalar ett kluster körs MIGRATE-kommandot , vilket är ett dyrt kommando. För minimal påverkan bör du överväga att köra den här åtgärden under låg belastning. Under migreringsprocessen ser du en topp i serverbelastningen. Att skala ett kluster är en tidskrävande process och hur lång tid det tar beror på antalet nycklar och storleken på de värden som är associerade med dessa nycklar.
Skala upp och ut – Enterprise- och Enterprise Flash-nivåer
Enterprise- och Enterprise Flash-nivåerna kan skalas upp och skalas ut i en åtgärd. Andra nivåer kräver separata åtgärder för varje åtgärd.
Varning
Enterprise- och Enterprise Flash-nivåerna stöder ännu inte nedskalning eller inre skalning operationer.
 
Skala med hjälp av Azure Portal
- Om du vill skala cacheminnet bläddrar du till cachen i Azure-portalen och väljer Skala på resursmenyn. - 
              
                
 
- Om du vill skala upp väljer du en annan cachetyp och väljer sedan Spara. - 
- Viktigt! - Du kan bara skala upp just nu. Du kan inte skala ned. 
 - 
              
                
 
- Öka skjutreglaget för Kapacitet för att skala ut. Kapacitetsökningar i steg om två. Det här talet visar hur många underliggande Redis Enterprise-noder som läggs till. Det här talet är alltid en multipel av två för att återspegla noder som läggs till för både primära partitioner och replikskärvor. - 
- Viktigt! - Du kan bara skala ut och öka kapaciteten just nu. Du kan inte skala in. 
 - 
              
                
 
- Medan cacheminnet skalas till den nya nivån visas ett meddelande om skalning av Redis Cache . - 
              
                
 
- När skalningsprocessen är klar ändras statusen från Skalningsprocess till Drift. 
Skalning med PowerShell
Du kan skala dina Azure Cache for Redis-instanser med PowerShell med hjälp av cmdleten Update-AzRedisEnterpriseCache . Du kan ändra Sku egenskapen för att skala upp instansen. Du kan ändra Capacity egenskapen för att skala ut instansen. I följande exempel visas hur du skalar en cache med namnet myCache till en Enterprise E20-instans (25 GB) med kapacitet på 4.
   Update-AzRedisEnterpriseCache -ResourceGroupName myGroup -Name myCache -Sku Enterprise_E20 -Capacity 4
Skalning med Azure CLI
Om du vill skala dina Azure Cache for Redis-instanser med Azure CLI anropar du kommandot az redisenterprise update . Du kan ändra sku egenskapen för att skala upp instansen. Du kan ändra capacity egenskapen för att skala ut instansen. I följande exempel visas hur du skalar en cache med namnet myCache till en Enterprise E20-instans (25 GB) med kapacitet på 4.
az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --sku "Enterprise_E20" --capacity 4
Vanliga frågor om skalning
Följande lista innehåller svar på vanliga frågor om Azure Cache for Redis-skalning.
Kan jag skala till, från eller i en Premium-cache?
- Du kan inte skala från en Premium-cache ned till prisnivån Basic eller Standard .
- Du kan skala från en prisnivå för Premium Cache till en annan.
- Du kan inte skala från en Basic-cache direkt till en Premium-cache . Först skalar du från Basic till Standard i en skalningsåtgärd och sedan från Standard till Premium i en senare skalningsåtgärd.
- Du kan inte skala från en Premium-cache till ett Enterprise - eller Enterprise Flash-cacheminne .
- Om du aktiverade klustring när du skapade Premium-cachen  kan du ändra klusterstorleken. Om cachen har skapats utan att klustring har aktiverats kan du konfigurera klustring vid ett senare tillfälle.
Måste jag ändra cachenamnet eller åtkomstnycklarna efter skalning?
Nej, cachenamnet och nycklarna ändras inte under en skalningsåtgärd.
Hur fungerar skalning?
- När du skalar en Basic-cache till en annan storlek stängs cachen av och en ny cache etableras med den nya storleken. Under den här tiden är cachen inte tillgänglig och alla data i cacheminnet går förlorade.
- När du skalar en Basic-cache till en Standard-cache etableras en replikcache och data kopieras från den primära cachen till replikcachen. Cachen är fortfarande tillgänglig under skalningsprocessen.
- När du skalar en Standard-, Premium-, Enterprise- eller Enterprise Flash-cache till en annan storlek stängs en av replikerna av och ometableras till den nya storleken och de data som överförs över, och sedan gör den andra repliken en redundansväxling innan den återskapas, ungefär som den process som inträffar under ett fel i en av cachenoderna.
- När du skalar ut en klustrad cache etableras nya shards och läggs till i Redis-serverklustret. Data partitioneras sedan på nytt mellan alla shards.
- När du skalar i en klustrad cache partitioneras först data om och sedan minskas klusterstorleken till nödvändiga shards.
- När du skalar eller migrerar cacheminnet till ett annat kluster kan cachens underliggande IP-adress ändras. DNS-posten för cachen ändras och är transparent för de flesta program. Men om du använder en IP-adress för att konfigurera anslutningen till cacheminnet eller konfigurera NSG:er eller brandväggar som tillåter trafik till cachen, kan ditt program ha problem med att ansluta efter dns-postuppdateringarna.
Försvinner data från cacheminnet under skalning?
- När du skalar en Basic-cache till en ny storlek går alla data förlorade och cacheminnet är inte tillgängligt under skalningsåtgärden.
- När du skalar en Basic-cache till en Standard-cache bevaras vanligtvis data i cacheminnet.
- När du skalar en Standard-, Premium-, Enterprise- eller Enterprise Flash-cache till en större storlek bevaras vanligtvis alla data. När du skalar en Standard- eller Premium-cache till en mindre storlek kan data gå förlorade om den ursprungliga datastorleken överskrider den nya mindre storleken. Om data går förlorade vid nedskalning avlägsnas nycklar med hjälp av borttagningsprincipen allkeys-lru.
Kan jag använda alla funktioner på Premium-nivån efter skalning?
Nej, vissa funktioner kan bara anges när du skapar en cache på Premium-nivån och inte är tillgängliga efter skalning.
Det går inte att lägga till de här funktionerna när du har skapat Premium-cachen:
- Införa virtuella nätverk
- Lägga till zonredundans
- Använda flera repliker per primär
Om du vill använda någon av dessa funktioner måste du skapa en ny cacheinstans på Premium-nivån.
Påverkas inställningen för anpassade databaser under skalningen?
Om du konfigurerade ett anpassat värde för databases inställningen när cacheminnet skapades bör du tänka på att vissa prisnivåer har olika databasgränser. Här följer några överväganden vid skalning i det här scenariot:
- När du skalar till en prisnivå med en lägre databasesgräns än den aktuella nivån:
- Om du använder standardnumret databases, vilket är 16 för alla prisnivåer, går inga data förlorade.
- Om du använder ett anpassat antal databasessom ligger inom gränserna för den nivå som du skalar till behålls den härdatabasesinställningen och inga data går förlorade.
- Om du använder ett anpassat antal databasessom överskrider gränserna för den nya nivåndatabasessänks inställningen till den nya nivåns gränser och alla data i de borttagna databaserna går förlorade.
 
- När du skalar till en prisnivå med samma eller högre databasesgräns än den aktuella nivån behålls inställningendatabasesoch inga data går förlorade.
Standard-, Premium-, Enterprise- och Enterprise Flash-cacheminnen har ett serviceavtal för tillgänglighet, men det finns inget serviceavtal för dataförlust.
Är min cache tillgänglig under skalning?
- 
              Standard-, Premium-, Enterprise- och Enterprise Flash-cacheminnen förblir tillgängliga under skalningsåtgärden. Anslutningsblips kan dock ske vid skalning av dessa cacheminnen och även vid skalning från Basic till Standard. Dessa anslutningsblips förväntas vara små och Redis-klienter kan vanligtvis återupprätta sin anslutning omedelbart.
- För Enterprise - och Enterprise Flash-cacheminnen med aktiv geo-replikering kan skalning av endast en delmängd länkade cacheminnen medföra problem över tid i vissa fall. Vi rekommenderar att du skalar alla cacheminnen i gruppen geo-replikering där det är möjligt.
- 
              Grundläggande cacheminnen är offline under skalningsåtgärder till en annan storlek. Grundläggande cacheminnen är fortfarande tillgängliga vid skalning från Basic till Standard , men kan uppleva en liten anslutningsblip. Om en anslutningsblip inträffar kan Redis-klienter vanligtvis återupprätta sin anslutning omedelbart.
Finns det skalningsbegränsningar med geo-replikering?
När passiv geo-replikering har konfigurerats kanske du märker att du inte kan skala en cache eller ändra shards i ett kluster. En geo-replikeringslänk mellan två cacheminnen förhindrar att du skalar eller ändrar antalet shards i ett kluster. Du måste ta bort länken till cachen för att kunna utfärda dessa kommandon. Mer information finns i Konfigurera geo-replikering.
Med aktiv geo-replikering konfigurerad kan du skala en cache med vissa begränsningar. Alla cacheminnen i en geo-replikeringsgrupp måste ha samma storlek och kapacitet. För mer information, se Konfigurera aktiv geo-replikering för Enterprise Azure Cache for Redis-instanser.
Åtgärder som inte stöds
- Du kan inte skala från en högre prisnivå till en lägre prisnivå.
- Du kan inte skala från en Premium-cache till en Standard - eller Basic-cache .
- Du kan inte skala från en Standard-cache till en Basic-cache .
 
- Du kan skala från en Basic-cache till en Standard-cache , men du kan inte ändra storleken på samma gång. Om du behöver en annan storlek kan du utföra en skalningsåtgärd till önskad storlek vid ett senare tillfälle.
- Du kan inte skala från en Basic-cache direkt till en Premium-cache . Skala först från Basic till Standard i en skalningsåtgärd och skala sedan från Standard till Premium i en senare åtgärd.
- Du kan inte skala från en Premium-cache till ett Enterprise - eller Enterprise Flash-cacheminne .
- Du kan inte skala från en större storlek ned till storleken C0 (250 MB).
Om en skalningsåtgärd misslyckas försöker tjänsten återställa åtgärden och cacheminnet återgår till den ursprungliga storleken.
Hur lång tid tar skalningen?
Skalningstiden beror på ett antal olika faktorer. Följande faktorer kan påverka hur lång tid skalningen tar:
- Mängd data: Större mängder data tar längre tid att replikera.
- Höga skrivbegäranden: Högre antal skrivningar innebär att fler data replikeras mellan noder eller shards.
- Hög serverbelastning: Högre serverbelastning innebär att Redis-servern är upptagen och begränsade CPU-cykler är tillgängliga för att slutföra dataomfördelningen.
Att skala en cache är inte en trivial åtgärd och kan ta lång tid. Det kan ta en till två timmar att skala en cache med en till två shards när den inte är under tung belastning. Om du har fler shards ökar inte tiden för skalning på ett linjärt sätt.
Hur vet jag när skalningen är klar?
Du kan se den pågående skalningsåtgärden i Azure-portalen. När skalningen är klar ändras statusen för cachen till Körs.
Behöver jag göra några ändringar i mitt klientprogram för att använda klustring?
Viktigt!
När du använder nivåerna Enterprise eller Enterprise FLash får du välja OSS-klusterläge eller Företagsklusterläge. OSS-klusterläget är detsamma som klustring på Premium-nivån och följer specifikationen för öppen källkod klustring. Företagsklusterläget kan vara mindre högpresterande, men använder Redis Enterprise-kluster som inte kräver några klientändringar. Mer information finns i Klustring.
 
Hur fördelas nycklar i ett kluster?
Enligt Redis-dokumentationen om nyckeldistributionsmodellen: Nyckelutrymmet är uppdelat i 16 384 platser. Varje nyckel hashas och tilldelas någon av dessa platser, som fördelas mellan noderna i klustret. Du kan konfigurera vilken del av nyckeln som hashas för att säkerställa att flera nycklar finns i samma shard genom att använda hash-taggar.
- Nycklar med en hash-tagg – Om någon del av nyckeln omges av {och}hashas endast denna del av nyckeln för att fastställa nyckelns hash-plats. Exempelvis finns följande tre nycklar i samma shard:{key}1,{key}2, och{key}3, eftersom endastkey-delen av namnet hashas. En fullständig lista över specifikationer för hashtaggar för nycklar finns i Nycklars hashtaggar.
- Nycklar utan hash-tagg – Hela nyckelnamnet används för hashning, vilket resulterar i en statistiskt jämn fördelning mellan cachens shards.
För bästa prestanda och dataflöde rekommenderar vi att nycklarna fördelas jämnt. Om du använder nycklar med en hash-tagg ansvarar programmet för att se till att nycklarna fördelas jämnt.
Mer information finns i Nyckeldistributionsmodell, Redis-klusterdatasharding och Hash-taggar för nycklar.
Exempelkod om hur du arbetar med klustring och att hitta nycklar i samma shard med StackExchange.Redis-klienten finns i clustering.cs delen av Hello World-exemplet .
Vilken är den största cachestorleken jag kan skapa?
Den största cachestorleken du kan ha är 4,5 TB. Det här resultatet är en klustrad F1500-cache med kapacitet 9. Mer information finns i Prissättning för Azure Cache for Redis.
Stöder alla Redis-klienter klustring?
Många klientbibliotek stöder Redis-klustring, men inte alla. Kontrollera dokumentationen för det bibliotek som du använder för att kontrollera att du använder ett bibliotek och en version som stöder klustring. StackExchange.Redis är ett bibliotek som stöder klustring i nyare versioner. Mer information om andra klienter finns i avsnittet Spela med klustret i Redis-klusterguide.
Redis-klustringsprotokollet kräver att varje klient ansluter till varje shard direkt i klustringsläge och definierar även nya felsvar som MOVED na CROSSSLOTS. När du försöker använda ett klientbibliotek som inte har stöd för klustring med en cache i klusterläge kan resultatet bli många MOVED-omdirigeringsfel eller bara bryta programmet om du gör multinyckelbegäranden mellan platser.
Kommentar
Om du använder StackExchange.Redis som klient kontrollerar du att du använder den senaste versionen av StackExchange.Redis 1.0.481 eller senare för att klustring ska fungera korrekt. Mer information om eventuella problem med flyttundantag finns i flyttundantag.
 
Hur gör jag för att ansluta till min cache när klustring är aktiverat?
Du kan ansluta till cachen med samma slutpunkter, portar och nycklar som du använder när du ansluter till ett cacheminne som inte har klustring aktiverat. Redis hanterar klustring på serverdelen så att du inte behöver hantera den från klienten.
Kan jag ansluta direkt till de enskilda fragmenten i min cache?
Klustringsprotokollet kräver att klienten gör rätt shardanslutningar, så klienten bör skapa delningsanslutningar åt dig. Med det sagt består varje shard av ett primärt/replikcachepar, som gemensamt kallas för en cacheinstans. Du kan ansluta till dessa cacheinstanser med hjälp av verktyget Redis-CLI i den instabila grenen av Redis-lagringsplatsen på GitHub. Den här versionen implementerar grundläggande stöd när den startas med växeln -c . För mer information, se Spela med klustret på https://redis.io i handledning för Redis-kluster.
Du måste använda växeln -p för att ange rätt port att ansluta till. Använd kommandot KLUSTERNODER för att fastställa exakt vilka portar som används för de primära noderna och repliknoderna. Följande portintervall används:
- För cacheminnen på icke-TLS Premium-nivå är portar tillgängliga i 130XXintervallet
- För TLS-aktiverade Premium-nivåcacheminnen är portar tillgängliga i 150XXintervallet
- För Enterprise- och Enterprise Flash-cacheminnen med OSS-klustring sker den första anslutningen via port 10000. Anslutning till enskilda noder kan göras med hjälp av portar i 85XX-intervallet. 85xx-portarna ändras med tiden och bör inte hårdkodas i ditt program.
Ja. Kontrollera först att cachen finns på Premium-nivån genom att skala upp den. Därefter kan du se konfigurationsalternativen för klustret, inklusive ett alternativ för att aktivera kluster. Ändra klusterstorleken när cacheminnet har skapats eller när du har aktiverat klustring för första gången.
Viktigt!
Du kan inte ångra aktivering av klustring. Och en cache med klustring aktiverat och endast en shard fungerar annorlunda än en cache av samma storlek utan klustring.
 
Alla Enterprise- och Enterprise Flash-nivåcacheminnen är alltid klustrade.
Klustring är endast tillgängligt för Premium-, Enterprise- och Enterprise Flash-cacheminnen.
Kan jag använda klustring med Redis ASP.NET sessionstillstånd och cachelagring av utdata?
Jag får MOVE-undantag när jag använder StackExchange.Redis och klustring, vad ska jag göra?
Om du använder StackExchange.Redis och får MOVE undantag när du använder klustring kontrollerar du att du använder StackExchange.Redis 1.1.603 eller senare.
Vad är skillnaden mellan OSS-klustring och Enterprise-klustring på Enterprise-nivåcacheminnen?
OSS-klusterläget är detsamma som klustring på Premium-nivån och följer specifikationen för öppen källkod klustring. Företagsklusterläget kan vara mindre högpresterande, men använder Redis Enterprise-klustring, vilket inte kräver några klientändringar för användning. Mer information finns i Klustring.
Hur många shards använder cacheminnen på Enterprise-nivå?
Till skillnad från cacheminnen på Basic-, Standard- och Premium-nivå kan Enterprise- och Enterprise Flash-cacheminnen dra nytta av flera shards på en enda nod. Mer information finns i Partitioneringskonfiguration.
Nästa steg