Een nieuwe cache maken die wordt uitgeschaald met behulp van clustering
Clustering wordt ingeschakeld tijdens het maken van de cache vanuit het werkvenster wanneer u een nieuwe Azure Cache voor Redis maakt.
Gebruik de quickstart voor het maken van een opensource Redis-cache om een nieuwe cache te maken met behulp van Azure Portal.
Configureer op het tabblad Geavanceerd voor een premium-cache-exemplaar de instellingen voor niet-TLS-poort, clustering en gegevenspersistentie. Als u clustering wilt inschakelen, selecteert u Inschakelen.
U kunt maximaal 30 shards in het cluster hebben. Nadat u Inschakelen hebt geselecteerd, schuift u de schuifregelaar of typt u een getal tussen 1 en 30 voor het aantal shards en selecteert u OK.
Elke shard is een primair/replicacachepaar dat wordt beheerd door Azure. De totale grootte van de cache wordt berekend door het aantal shards te vermenigvuldigen met de cachegrootte die is geselecteerd in de prijscategorie.
Zodra de cache is gemaakt, maakt u er verbinding mee en gebruikt u deze net als een niet-geclusterde cache. Redis distribueert de gegevens over de cache-shards. Als diagnostische gegevens zijn ingeschakeld, worden metrische gegevens afzonderlijk vastgelegd voor elke shard en kunnen ze worden weergegeven in Azure Cache voor Redis met behulp van het menu Resource.
Voltooi het maken van de cache met behulp van de snelstartgids.
Het duurt even voor de cache is gemaakt. U kunt de voortgang bekijken op de overzichtspagina van Azure Cache voor Redis. Als u bij StatusWordt uitgevoerd ziet staan, kunt u de cache gebruiken.
Zie het clustering.cs gedeelte van het Hallo wereld voorbeeld voor voorbeeldcode voor het werken met clustering met de StackExchange.Redis-client.
Een actieve Premium-cache in- of uitschalen
Als u de clustergrootte wilt wijzigen in een Premium-cache die u eerder hebt gemaakt en die al wordt uitgevoerd met clustering ingeschakeld, selecteert u Clustergrootte in het menu Resource.
Als u de clustergrootte wilt wijzigen, gebruikt u de schuifregelaar of typt u een getal tussen 1 en 30 in het tekstvak Shard count . Selecteer vervolgens OK om op te slaan.
Door de clustergrootte te vergroten, wordt de maximale doorvoer en cachegrootte verhoogd. Het verhogen van de clustergrootte verhoogt niet het maximumaantal verbindingen dat beschikbaar is voor clients.
Uitschalen en inschalen met Behulp van PowerShell
U kunt uw Azure Cache voor Redis exemplaren uitschalen met PowerShell met behulp van de cmdlet Set-AzRedisCache wanneer de ShardCount
eigenschap wordt gewijzigd. In het volgende voorbeeld ziet u hoe u een cache uitschaalt die is genoemd myCache
voor het gebruik van drie shards (dat wil gezegd, uitschalen met een factor van drie)
Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -ShardCount 3
Zie Een Azure Cache voor Redis schalen met Behulp van PowerShell voor meer informatie over schalen met PowerShell.
Uitschalen en inschalen met behulp van Azure CLI
Als u uw Azure Cache voor Redis-exemplaren wilt schalen met behulp van Azure CLI, roept u de opdracht az redis update aan en gebruikt u de shard-count
eigenschap. In het volgende voorbeeld ziet u hoe u een cache uitschaalt met de naam myCache
drie shards (dat wil gezegd, uitschalen met een factor van drie).
az redis update --cluster-name myCache --resource-group myGroup --set shard-count=3
Zie Instellingen van een bestaande Azure Cache voor Redis wijzigen voor meer informatie over schalen met Azure CLI.
Notitie
Wanneer u een cache programmatisch vergroot of verkleint (bijvoorbeeld met behulp van PowerShell of Azure CLI), worden eventuele maxmemory-reserved
of maxfragmentationmemory-reserved
genegeerd als onderdeel van de updateaanvraag. Alleen uw schaalwijziging wordt gehonoreerd. U kunt deze geheugeninstellingen bijwerken nadat de schaalbewerking is voltooid.
Als u een cluster schaalt, wordt de opdracht MIGRATE uitgevoerd. Dit is een dure opdracht. Voor minimale impact kunt u overwegen deze bewerking uit te voeren tijdens daluren. Tijdens het migratieproces ziet u een piek in de serverbelasting. Het schalen van een cluster is een langlopend proces en de hoeveelheid tijd die nodig is, is afhankelijk van het aantal sleutels en de grootte van de waarden die aan deze sleutels zijn gekoppeld.
Omhoog en uitschalen - Enterprise- en Enterprise Flash-lagen
De Enterprise- en Enterprise Flash-lagen kunnen in één bewerking omhoog schalen en uitschalen. Voor andere lagen zijn afzonderlijke bewerkingen vereist voor elke actie.
Let op
De Enterprise- en Enterprise Flash-lagen bieden nog geen ondersteuning voor omlaag schalen of inschalen van bewerkingen.
Schalen met behulp van Azure Portal
Als u de cache wilt schalen, bladert u naar de cache in Azure Portal en selecteert u Schalen in het menu Resource.
Als u omhoog wilt schalen, kiest u een ander cachetype en kiest u Opslaan.
Belangrijk
U kunt op dit moment alleen omhoog schalen. U kunt niet omlaag schalen.
Als u wilt uitschalen, verhoogt u de schuifregelaar Capaciteit . Capaciteit neemt toe in stappen van twee. Dit getal geeft aan hoeveel onderliggende Redis Enterprise-knooppunten worden toegevoegd. Dit getal is altijd een veelvoud van twee om knooppunten weer te geven die worden toegevoegd voor zowel primaire als replica-shards.
Belangrijk
U kunt op dit moment alleen uitschalen en de capaciteit vergroten. U kunt niet inschalen.
Terwijl de cache wordt geschaald naar de nieuwe laag, wordt er een melding over het schalen van Redis Cache weergegeven.
Wanneer het schalen is voltooid, verandert de status van Schalen naar Actief.
Schalen met PowerShell
U kunt uw Azure Cache voor Redis-exemplaren schalen met PowerShell met behulp van de cmdlet Update-AzRedisEnterpriseCache. U kunt de Sku
eigenschap wijzigen om het exemplaar omhoog te schalen. U kunt de Capacity
eigenschap wijzigen om het exemplaar uit te schalen. In het volgende voorbeeld ziet u hoe u een cache met de naam myCache
schaalt naar een Enterprise E20-exemplaar (25 GB) met een capaciteit van 4.
Update-AzRedisEnterpriseCache -ResourceGroupName myGroup -Name myCache -Sku Enterprise_E20 -Capacity 4
Schalen met Azure CLI
Als u uw Azure Cache voor Redis-exemplaren wilt schalen met behulp van Azure CLI, roept u de opdracht az redisenterprise update aan. U kunt de sku
eigenschap wijzigen om het exemplaar omhoog te schalen. U kunt de capacity
eigenschap wijzigen om het exemplaar uit te schalen. In het volgende voorbeeld ziet u hoe u een cache met de naam myCache
schaalt naar een Enterprise E20-exemplaar (25 GB) met een capaciteit van 4.
az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --sku "Enterprise_E20" --capacity 4
Veelgestelde vragen over schalen
De volgende lijst bevat antwoorden op veelgestelde vragen over Azure Cache voor Redis schalen.
Kan ik schalen naar, van of naar een Premium-cache?
- U kunt niet schalen vanuit een Premium-cache naar een Basic - of Standard-prijscategorie .
- U kunt schalen van de ene Prijscategorie voor Premium-cache naar een andere.
- U kunt niet rechtstreeks schalen van een Basic-cache naar een Premium-cache . Schaal eerst van Basic naar Standard in één schaalbewerking en vervolgens van Standard naar Premium in een latere schaalbewerking.
- U kunt niet schalen van een Premium-cache naar een Enterprise - of Enterprise Flash-cache .
- Als u clustering hebt ingeschakeld tijdens het maken van uw Premium-cache , kunt u de clustergrootte wijzigen. Als uw cache is gemaakt zonder clustering ingeschakeld, kunt u clustering op een later tijdstip configureren.
Moet ik na het schalen mijn cachenaam of toegangssleutels wijzigen?
Nee, uw cachenaam en -sleutels worden niet gewijzigd tijdens een schaalbewerking.
Hoe werkt schalen?
- Wanneer u een Basic-cache naar een andere grootte schaalt, wordt de cache afgesloten en wordt een nieuwe cache ingericht met de nieuwe grootte. Gedurende deze tijd is de cache niet beschikbaar en gaan alle gegevens in de cache verloren.
- Wanneer u een Basic-cache schaalt naar een Standard-cache , wordt een replicacache ingericht en worden de gegevens gekopieerd van de primaire cache naar de replicacache. De cache blijft beschikbaar tijdens het schaalproces.
- Wanneer u een Standard-, Premium-, Enterprise- of Enterprise Flash-cache naar een andere grootte schaalt, wordt een van de replica's afgesloten en opnieuw ingericht voor de nieuwe grootte en de gegevens die worden overgedragen. Vervolgens voert de andere replica een failover uit voordat deze opnieuw wordt ingericht, vergelijkbaar met het proces dat optreedt tijdens een storing van een van de cacheknooppunten.
- Wanneer u een geclusterde cache uitschaalt, worden nieuwe shards ingericht en toegevoegd aan het Redis-servercluster. Gegevens worden vervolgens opnieuw gehard voor alle shards.
- Wanneer u in een geclusterde cache schaalt, worden de gegevens eerst opnieuw gehard en wordt de clustergrootte verkleind tot vereiste shards.
- Wanneer u uw cache schaalt of migreert naar een ander cluster, kan het onderliggende IP-adres van de cache worden gewijzigd. De DNS-record voor de cache verandert en is transparant voor de meeste toepassingen. Als u echter een IP-adres gebruikt om de verbinding met uw cache te configureren of NSG's of firewalls te configureren die verkeer naar de cache toestaan, kan uw toepassing problemen ondervinden bij het maken van verbinding nadat de DNS-recordupdates zijn bijgewerkt.
Verlies ik data uit mijn cache tijdens het schalen?
- Wanneer u een Basic-cache naar een nieuwe grootte schaalt, gaan alle gegevens verloren en is de cache niet beschikbaar tijdens de schaalbewerking.
- Wanneer u een Basic-cache schaalt naar een Standard-cache , blijven de gegevens in de cache doorgaans behouden.
- Wanneer u een Standard-, Premium-, Enterprise- of Enterprise Flash-cache schaalt naar een grotere grootte, blijven alle gegevens doorgaans behouden. Wanneer u een Standard- of Premium-cache naar een kleinere grootte schaalt, kunnen gegevens verloren gaan als de oorspronkelijke gegevens groter zijn dan de nieuwe kleinere cache. Als gegevens verloren gaan bij omlaag schalen, worden sleutels verwijderd met behulp van het verwijderingsbeleid allkeys-lru.
Kan ik na het schalen alle functies van de Premium-laag gebruiken?
Nee, sommige functies kunnen alleen worden ingesteld wanneer u een cache maakt in de Premium-laag en niet beschikbaar is na het schalen.
Deze functies kunnen niet worden toegevoegd nadat u de Premium-cache hebt gemaakt:
- Virtuele netwerken injecteren
- Zoneredundantie toevoegen
- Meerdere replica's per primaire replica gebruiken
Als u een van deze functies wilt gebruiken, moet u een nieuw cache-exemplaar maken in de Premium-laag.
Wordt de instelling van mijn aangepaste databases beïnvloed tijdens het schalen?
Als u een aangepaste waarde hebt geconfigureerd voor de instelling tijdens het maken van de databases
cache, moet u er rekening mee houden dat sommige prijscategorieën verschillende databaselimieten hebben. Hier volgen enkele overwegingen bij het schalen in dit scenario:
- Wanneer u schaalt naar een prijscategorie met een lagere
databases
limiet dan de huidige categorie:
- Als u het standaardaantal
databases
, dat 16 is voor alle prijscategorieën, gebruikt, gaan er geen gegevens verloren.
- Als u een aangepast aantal
databases
gebruikt dat binnen de limieten valt voor de laag waarvoor u schaalt, wordt deze databases
instelling bewaard en gaan er geen gegevens verloren.
- Als u een aangepast aantal
databases
gebruikt dat de limieten van de nieuwe laag overschrijdt, wordt de databases
instelling verlaagd tot de limieten van de nieuwe laag en gaan alle gegevens in de verwijderde databases verloren.
- Wanneer u schaalt naar een prijscategorie met dezelfde of hogere
databases
limiet dan de huidige laag, wordt uw databases
instelling bewaard en gaan er geen gegevens verloren.
Hoewel Standard-, Premium-, Enterprise- en Enterprise Flash-caches een SLA hebben voor beschikbaarheid, is er geen SLA voor gegevensverlies.
Is mijn cache beschikbaar tijdens het schalen?
-
Standard-, Premium-, Enterprise- en Enterprise Flash-caches blijven beschikbaar tijdens de schaalbewerking. Verbindingslips kunnen echter optreden tijdens het schalen van deze caches, en ook tijdens het schalen van Basic naar Standard-caches . Deze verbindingslips zijn naar verwachting klein en redis-clients kunnen hun verbinding over het algemeen onmiddellijk opnieuw tot stand brengen.
- Voor Enterprise- en Enterprise Flash-caches die actieve geo-replicatie gebruiken, kan het schalen van slechts een subset van gekoppelde caches in sommige gevallen problemen veroorzaken. We raden u aan om waar mogelijk alle caches in de geo-replicatiegroep samen te schalen.
-
Basiscaches zijn offline tijdens schaalbewerkingen naar een andere grootte. Basiscaches blijven beschikbaar bij het schalen van Basic naar Standard , maar kunnen een kleine verbindingslip ervaren. Als er een verbindingslip optreedt, kunnen Redis-clients hun verbinding over het algemeen onmiddellijk opnieuw tot stand brengen.
Zijn er schaalbeperkingen met geo-replicatie?
Als passieve geo-replicatie is geconfigureerd, merkt u mogelijk dat u een cache niet kunt schalen of de shards in een cluster kunt wijzigen. Een geo-replicatiekoppeling tussen twee caches voorkomt dat u de schaalbewerking kunt aanpassen of het aantal shards in een cluster kunt wijzigen. U moet de cache ontkoppelen om deze opdrachten uit te voeren. Zie Geo-replicatie configureren voor meer informatie.
Als actieve geo-replicatie is geconfigureerd, kunt u een cache schalen met enkele beperkingen. Alle caches in een geo-replicatiegroep moeten dezelfde grootte en capaciteit hebben. Zie Actieve geo-replicatie configureren voor Enterprise Azure Cache voor Redis-exemplaren voor meer informatie.
Bewerkingen die niet worden ondersteund
- U kunt niet schalen van een hogere prijscategorie naar een lagere prijscategorie.
- U kunt niet schalen van een Premium-cache naar een Standard - of Basic-cache .
- U kunt niet schalen vanuit een Standard-cache naar een Basic-cache .
- U kunt schalen van een Basic-cache naar een Standard-cache , maar u kunt de grootte niet tegelijkertijd wijzigen. Als u een andere grootte nodig hebt, kunt u een schaalbewerking uitvoeren naar de gewenste grootte op een later tijdstip.
- U kunt niet rechtstreeks schalen van een Basic-cache naar een Premium-cache . Schaal eerst van Basic naar Standard in één schaalbewerking en schaal vervolgens in een latere bewerking van Standard naar Premium .
- U kunt niet schalen van een Premium-cache naar een Enterprise - of Enterprise Flash-cache .
- U kunt niet schalen van een grotere grootte naar de grootte C0 (250 MB).
Als een schaalbewerking mislukt, probeert de service de bewerking te herstellen en wordt de cache teruggezet naar de oorspronkelijke grootte.
Hoe lang duurt schalen?
Schaaltijd is afhankelijk van een paar factoren. De volgende factoren kunnen van invloed zijn op hoe lang schalen duurt:
- Hoeveelheid gegevens: het duurt langer om grotere hoeveelheden gegevens te repliceren.
- Hoge schrijfaanvragen: een hoger aantal schrijfbewerkingen betekent dat er meer gegevens worden gerepliceerd tussen knooppunten of shards.
- Hoge serverbelasting: hogere serverbelasting betekent dat de Redis-server bezet is en dat er beperkte CPU-cycli beschikbaar zijn om de herdistributie van gegevens te voltooien.
Het schalen van een cache is geen triviale actie en kan lang duren. Het kan één tot twee uur duren om een cache met één tot twee shards te schalen wanneer deze niet zwaar wordt belast. Als u meer shards hebt, neemt de tijd om te schalen niet lineair toe.
Hoe kan ik zien wanneer schalen is voltooid?
In Azure Portal ziet u de schaalbewerking die wordt uitgevoerd. Wanneer het schalen is voltooid, wordt de status van de cache gewijzigd in Actief.
Moet ik wijzigingen aanbrengen in mijn clienttoepassing om clustering te kunnen gebruiken?
Belangrijk
Wanneer u de Enterprise- of Enterprise FLash-lagen gebruikt, krijgt u de keuze uit de OSS-clustermodus of enterpriseclustermodus. OSS-clustermodus is hetzelfde als clustering op de Premium-laag en volgt de opensource-clusteringspecificatie. De bedrijfsclustermodus kan minder goed werken, maar gebruikt Redis Enterprise-clustering waarvoor geen clientwijzigingen nodig zijn. Zie Clustering voor meer informatie.
Hoe worden sleutels gedistribueerd in een cluster?
Volgens de Redis-documentatie over Het distributiemodel sleutels: de sleutelruimte wordt gesplitst in 16.384 sleuven. Elke sleutel wordt gehasht en toegewezen aan een van deze sites, die worden verdeeld over de knooppunten van het cluster. U kunt configureren welk deel van de sleutel is gehasht om ervoor te zorgen dat meerdere sleutels zich in dezelfde shard bevinden met behulp van hashtags.
- Sleutels met een hash-tag: als een deel van de sleutel is ingesloten
{
en }
alleen dat deel van de sleutel wordt gehasht voor het bepalen van de hash-site van een sleutel. De volgende drie sleutels bevinden zich bijvoorbeeld in dezelfde shard: {key}1
, {key}2
en {key}3
omdat alleen het key
deel van de naam is gehasht. Zie Hash-tags voor sleutels voor een volledige lijst met hashtagspecificaties voor sleutels.
- Sleutels zonder hash-tag: de volledige sleutelnaam wordt gebruikt voor hashing en dit leidt tot een statistisch gelijkmatige verdeling over de shards van de cache.
Voor de beste prestaties en doorvoer raden we u aan de sleutels gelijkmatig te distribueren. Als u sleutels met een hash-tag gebruikt, is het de verantwoordelijkheid van de toepassing om ervoor te zorgen dat de sleutels gelijkmatig worden verdeeld.
Zie voor meer informatie het distributiemodel sleutels, Redis Cluster gegevens sharding en sleutels hash-tags.
Zie het clustering.cs gedeelte van het Hallo wereld voorbeeld voor voorbeeldcode over het werken met clustering en het zoeken van sleutels in dezelfde shard met de StackExchange.Redis-client.
Wat is de grootste cachegrootte die ik kan maken?
De grootste cachegrootte die u kunt hebben, is 4,5 TB. Dit resultaat is een geclusterde F1500-cache met capaciteit 9. Zie Prijzen van Azure Cache voor Redis voor meer informatie.
Ondersteunen alle Redis-clients clustering?
Veel clientsbibliotheken ondersteunen Redis-clustering, maar niet alle. Raadpleeg de documentatie voor de bibliotheek die u gebruikt om te controleren of u een bibliotheek en versie gebruikt die clustering ondersteunen. StackExchange.Redis is één bibliotheek die clustering ondersteunt, in de nieuwere versies. Zie de sectie Afspelen met het cluster van de zelfstudie redis-cluster voor meer informatie over andere clients.
Voor het Redis-clusteringprotocol moet elke client rechtstreeks verbinding maken met elke shard in de clustermodus en worden ook nieuwe foutreacties zoals MOVED
na CROSSSLOTS
gedefinieerd. Wanneer u probeert een clientbibliotheek te gebruiken die geen ondersteuning biedt voor clustering met een cache die in clustermodus werkt, kan het resultaat veel MOVED-omleidingsuitzonderingen zijn, of uw toepassing kan stoppen met werken als u multi-key verzoeken tussen slots doet.
Hoe kan ik verbinding maken met mijn cache wanneer clustering is ingeschakeld?
U kunt verbinding maken met uw cache met behulp van dezelfde eindpunten, poorten en sleutels die u gebruikt wanneer u verbinding maakt met een cache waarvoor clustering niet is ingeschakeld. Redis beheert de clustering op de back-end, zodat u deze niet hoeft te beheren vanaf uw client.
Kan ik rechtstreeks verbinding maken met de afzonderlijke shards van mijn cache?
Voor het clusteringprotocol moet de client de juiste shardverbindingen maken, zodat de client verbindingen voor u moet delen. Met dat gezegd, elke shard bestaat uit een primaire/replica-cachepaar, gezamenlijk bekend als een cache-exemplaar. U kunt verbinding maken met deze cache-exemplaren met behulp van het hulpprogramma Redis-CLI in de instabiele vertakking van de Redis-opslagplaats op GitHub. Met deze versie wordt basisondersteuning geïmplementeerd wanneer deze met de -c
switch wordt gestart. Zie Afspelen met het clusterhttps://redis.io in de zelfstudie redis-cluster voor meer informatie.
U moet de -p
switch gebruiken om de juiste poort op te geven waarmee u verbinding wilt maken. Gebruik de opdracht CLUSTERKNOOPPUNTen om de exacte poorten te bepalen die worden gebruikt voor de primaire en replicaknooppunten. De volgende poortbereiken worden gebruikt:
- Voor caches met niet-TLS Premium-lagen zijn poorten beschikbaar in het
130XX
bereik
- Voor caches met TLS-laag met Premium zijn poorten beschikbaar in het
150XX
bereik
- Voor Enterprise- en Enterprise Flash-caches met OSS-clustering is de eerste verbinding via poort 10000. U kunt verbinding maken met afzonderlijke knooppunten met behulp van poorten in het bereik 85XX. De 85xx-poorten worden na verloop van tijd gewijzigd en mogen niet in uw toepassing worden vastgelegd.
Ja. Zorg er eerst voor dat uw cache zich in de Premium-laag bevindt door deze omhoog te schalen. Vervolgens ziet u de clusterconfiguratieopties, inclusief een optie om cluster in te schakelen. Wijzig de clustergrootte nadat de cache is gemaakt of nadat u clustering voor het eerst hebt ingeschakeld.
Belangrijk
U kunt het inschakelen van clustering niet ongedaan maken. En een cache met clustering ingeschakeld en slechts één shard gedraagt zich anders dan een cache met dezelfde grootte zonder clustering.
Alle caches voor Enterprise- en Enterprise Flash-lagen worden altijd geclusterd.
Clustering is alleen beschikbaar voor Premium-, Enterprise- en Enterprise Flash-caches.
Kan ik clustering gebruiken met de Redis ASP.NET Session State and Output Caching providers?
-
Redis Output Cache-provider : er zijn geen wijzigingen vereist.
-
Redis Session State Provider : als u clustering wilt gebruiken, moet u RedisSessionStateProvider 2.0.1 of hoger gebruiken of een uitzondering wordt gegenereerd. Dit is een wijziging die fouten veroorzaakt. Zie v2.0.0. Details van wijziging die fouten veroorzaken voor meer informatie.
Ik krijg MOVE-uitzonderingen bij het gebruik van StackExchange.Redis en clustering. Wat moet ik doen?
Als u StackExchange.Redis gebruikt en uitzonderingen ontvangt MOVE
bij het gebruik van clustering, controleert u of u StackExchange.Redis 1.1.603 of hoger gebruikt.
Wat is het verschil tussen OSS-clustering en Enterprise Clustering in enterprise-laagcaches?
OSS-clustermodus is hetzelfde als clustering op de Premium-laag en volgt de opensource-clusteringspecificatie. De bedrijfsclustermodus kan minder goed werken, maar gebruikt Redis Enterprise-clustering, waarvoor geen clientwijzigingen nodig zijn. Zie Clustering voor meer informatie.
Hoeveel shards gebruiken Enterprise-laagcaches?
In tegenstelling tot caches in de Basic-, Standard- en Premium-laag, Enterprise- en Enterprise Flash-caches kunnen gebruikmaken van meerdere shards op één knooppunt. Zie Sharding-configuratie voor meer informatie.
Volgende stappen