Vytvoření nové mezipaměti, která se škáluje na více instancí pomocí clusteringu
Clustering se povolí při vytváření mezipaměti z pracovního podokna při vytváření nové služby Azure Cache for Redis.
Pomocí úvodní příručky pro vytvoření opensourcové mezipaměti Redis cache začněte vytvářet novou mezipaměť pomocí webu Azure Portal.
Na kartě Pokročilé pro instanci mezipaměti Premium nakonfigurujte nastavení pro port bez-TLS, seskupování a trvalost dat. Pokud chcete povolit clustering, vyberte Povolit.
V clusteru můžete mít až 30 horizontálních oddílů. Po výběru Povolit posuňte posuvník nebo zadejte číslo mezi 1 a 30 pro počet shardů a vyberte OK.
Každý horizontální oddíl je pár mezipaměti primární/repliky spravovaný Azure. Celková velikost mezipaměti se vypočítá vynásobením počtu horizontálních oddílů velikostí mezipaměti vybranou v cenové úrovni.
Po vytvoření mezipaměti se k ní připojíte a použijete ji stejně jako neclusterovanou mezipaměť. Redis distribuuje data v rámci horizontálních oddílů mezipaměti. Pokud je povolená diagnostika, metriky se zaznamenávají samostatně pro každý horizontální oddíl a dají se zobrazit ve službě Azure Cache for Redis pomocí nabídky Prostředky.
Dokončete vytváření mezipaměti pomocí průvodce rychlým startem.
Vytvoření mezipaměti chvíli trvá. Průběh můžete sledovat na stránce Přehled služby Azure Cache for Redis. Když je stav zobrazen jako Spuštěno, je mezipaměť připravená k použití.
Ukázkový kód pro práci s clusteringem s klientem StackExchange.Redis najdete v clustering.cs části ukázky Hello World .
Horizontální navýšení nebo snížení kapacity spuštěné mezipaměti Premium
Pokud chcete změnit velikost clusteru ve dříve vytvořené mezipaměti Premium, která už běží s povoleným clusteringem, vyberte z nabídky prostředků Velikost clusteru.
Pokud chcete změnit velikost shardu, použijte posuvník nebo zadejte číslo od 1 do 30 do textového pole Počet shardů. Pak vyberte OK a uložte ho.
Zvětšením velikosti clusteru se zvýší maximální propustnost a velikost mezipaměti. Zvětšením velikosti clusteru se nezvětší maximum. Připojení dostupná klientům.
Horizontální navýšení a snížení kapacity pomocí PowerShellu
Azure Cache for Redis instance můžete škálovat v PowerShellu pomocí příkazu Set-AzRedisCache, když je vlastnost ShardCount
upravena. Následující příklad ukazuje, jak horizontálně rozšířit kapacitu mezipaměti pojmenované myCache
tak, aby používala tři horizontální oddíly (to znamená horizontální navýšení kapacity podle faktoru tří).
Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -ShardCount 3
Další informace o škálování pomocí PowerShellu najdete v tématu Škálování služby Azure Cache for Redis pomocí PowerShellu.
Horizontální navýšení a snížení kapacity s využitím Azure CLI
Pokud chcete škálovat instance Azure Cache for Redis pomocí Azure CLI, zavolejte příkaz az redis update a použijte vlastnost shard-count
. Následující příklad ukazuje, jak horizontálně rozšířit kapacitu mezipaměti pojmenované myCache
tak, aby používala tři horizontální oddíly (to znamená horizontální navýšení kapacity podle faktoru tří).
az redis update --cluster-name myCache --resource-group myGroup --set shard-count=3
Další informace o škálování pomocí Azure CLI najdete v tématu Změna nastavení existující služby Azure Cache for Redis.
Poznámka:
Při programovém škálování mezipaměti nahoru nebo dolů (např. pomocí PowerShellu nebo Azure CLI) jsou všechny maxmemory-reserved
nebo maxfragmentationmemory-reserved
ignorovány jako součást žádosti o aktualizaci. Je dodržena pouze vaše změna škálování. Po dokončení operace škálování můžete tato nastavení paměti aktualizovat.
Škálování clusteru spustí příkaz MIGRATE , což je nákladný příkaz. Pokud chcete mít minimální dopad, zvažte spuštění této operace mimo špičku. Během procesu migrace se zobrazí špička v zatížení serveru. Škálování clusteru je dlouhotrvající proces a doba trvání závisí na počtu klíčů a velikosti hodnot přidružených k těmto klíčům.
Vertikální navýšení a navýšení kapacity – úrovně Enterprise a Enterprise Flash
Úrovně Enterprise a Enterprise Flash umožňují vertikálně navýšit kapacitu a vertikálně navýšit kapacitu v rámci jedné operace. Jiné úrovně vyžadují pro každou akci samostatné operace.
Upozornění
Úrovně Enterprise a Enterprise Flash zatím nepodporují zmenšení kapacity nebo škálování dovnitř operací.
Škálování pomocí webu Azure Portal
Chcete-li škálovat mezipaměť, přejděte do mezipaměti v Azure portálu a v nabídce Prostředek vyberte Škálovat.
Pokud chcete vertikálně navýšit kapacitu, zvolte jiný typ mezipaměti a pak zvolte Uložit.
Důležité
V tuto chvíli můžete vertikálně navýšit kapacitu. Nelze zmenšit.
Pokud chcete vertikálně navýšit kapacitu, zvyšte posuvník Kapacity . Zvýšení kapacity v přírůstcích po dvou. Toto číslo odráží, kolik základních uzlů Redis Enterprise se přidává. Toto číslo je vždy násobkem dvou uzlů, které se přidávají pro horizontální oddíly primární i repliky.
Důležité
V tuto chvíli můžete vertikálně navýšit kapacitu, zvýšit kapacitu. Nemůžete vstoupit do pozice postupně.
Zatímco se mezipaměť škáluje na novou úroveň, zobrazí se oznámení o škálování redis Cache .
Po dokončení škálování se stav změní ze Škálování na Spuštěno.
Škálování přes rozhraní PowerShell
Instance Azure Cache for Redis můžete škálovat pomocí PowerShellu pomocí rutiny Update-AzRedisEnterpriseCache . Vlastnost můžete upravit Sku
tak, aby se instance vertikálně navyšila. Vlastnost můžete upravit Capacity
tak, aby škálovat instanci na více instancí. Následující příklad ukazuje, jak škálovat mezipaměť s názvem myCache
na instanci Enterprise E20 (25 GB) s kapacitou 4.
Update-AzRedisEnterpriseCache -ResourceGroupName myGroup -Name myCache -Sku Enterprise_E20 -Capacity 4
Škálování přes rozhraní Azure CLI
Pokud chcete škálovat instance Azure Cache for Redis pomocí Azure CLI, zavolejte příkaz az redisenterprise update . Vlastnost můžete upravit sku
tak, aby se instance vertikálně navyšila. Vlastnost můžete upravit capacity
tak, aby škálovat instanci na více instancí. Následující příklad ukazuje, jak škálovat mezipaměť s názvem myCache
na instanci Enterprise E20 (25 GB) s kapacitou 4.
az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --sku "Enterprise_E20" --capacity 4
Časté dotazy ke škálování
Následující seznam obsahuje odpovědi na nejčastější dotazy týkající se škálování azure Cache for Redis.
Můžu škálovat na mezipaměť Premium nebo z mezipaměti Premium?
- Nejde škálovat z mezipaměti Premium dolů na cenovou úroveň Basic nebo Standard .
- Můžete škálovat z jedné cenové úrovně mezipaměti Premium na jinou.
- Nemůžete škálovat z mezipaměti Basic přímo do mezipaměti Premium . Nejprve proveďte škálování z úrovně Basic na Standard v jedné operaci škálování a potom z úrovně Standard na Premium v pozdější operaci škálování.
- Nemůžete škálovat z mezipaměti Premium na mezipaměť Enterprise nebo Enterprise Flash .
- Pokud jste při vytváření mezipaměti Premium povolili clustering, můžete změnit velikost clusteru. Pokud byla mezipaměť vytvořena bez povolení clusteringu, můžete clustering nakonfigurovat později.
Musím po škálování změnit název mezipaměti nebo přístupové klíče?
Ne, název a klíče mezipaměti se během operace škálování nezmění.
Jak škálování funguje?
- Když škálujete mezipaměť Basic na jinou velikost, mezipaměť se vypne a nová mezipaměť se zřídí pomocí nové velikosti. Během této doby je mezipaměť nedostupná a všechna data v mezipaměti se ztratí.
- Když škálujete mezipaměť Basic na mezipaměť Standard, zřídí se mezipaměť repliky a data se zkopírují z primární mezipaměti do mezipaměti repliky. Mezipaměť zůstane během procesu škálování dostupná.
- Když škálujete mezipaměť Standard, Premium, Enterprise nebo Enterprise Flash na jinou velikost, jedna z replik se vypne a znovu zřízena na novou velikost, a data jsou přenesena, poté druhá replika provede převzetí služeb při selhání před opětovném zřízení, podobně jako při selhání jednoho z uzlů mezipaměti.
- Při horizontálním navýšení kapacity clusterované mezipaměti se zřídí nové horizontální oddíly a přidají se do clusteru serveru Redis. Data se pak znovu sdílí napříč všemi horizontálními oddíly.
- Při škálování v clusterované mezipaměti se data nejprve znovu horizontálně sníží na požadované horizontální oddíly.
- Při škálování nebo migraci mezipaměti do jiného clusteru se může změnit základní IP adresa mezipaměti. Záznam DNS pro mezipaměť se změní a pro většinu aplikací je transparentní. Pokud ale použijete IP adresu ke konfiguraci připojení k mezipaměti nebo ke konfiguraci skupin zabezpečení sítě nebo bran firewall, které umožňují provoz do mezipaměti, může mít vaše aplikace potíže s připojením po aktualizaci záznamů DNS.
Ztratím při škálování data z mezipaměti?
- Při škálování mezipaměti Basic na novou velikost dojde ke ztrátě všech dat a během operace škálování nebude mezipaměť k dispozici.
- Při škálování mezipaměti Basic do mezipaměti Standard se data v mezipaměti obvykle zachovají.
- Při škálování mezipaměti Standard, Premium, Enterprise nebo Enterprise Flash na větší velikost se obvykle zachovají všechna data. Když škálujete mezipaměť Standard nebo Premium na menší velikost, může dojít ke ztrátě dat, pokud původní velikost dat překročí novou menší velikost. Pokud při snížení rozsahu dojde ke ztrátě dat, klíče se vyřadí pomocí politiky vyřazování allkeys-lru.
Můžu po škálování používat všechny funkce úrovně Premium?
Ne, některé funkce se dají nastavit jenom při vytváření mezipaměti na úrovni Premium a po škálování nejsou dostupné.
Tyto funkce není možné přidat po vytvoření mezipaměti Premium:
- Vkládání virtuálních sítí
- Přidání redundance zón
- Použití více replik na primární server
Pokud chcete použít některou z těchto funkcí, musíte vytvořit novou instanci mezipaměti na úrovni Premium.
Týká se nastavení vlastních databází během škálování?
Pokud jste při vytváření mezipaměti nakonfigurovali vlastní hodnotu nastavení databases
, mějte na paměti, že některé cenové úrovně mají různá omezení databází. Při škálování v tomto scénáři je potřeba vzít v úvahu následující skutečnosti:
- Když škálujete na cenovou úroveň s nižším
databases
limitem, než je aktuální úroveň:
- Pokud používáte výchozí počet
databases
, který je 16 pro všechny cenové úrovně, neztratí se žádná data.
- Pokud používáte vlastní počet
databases
, který spadá do limitů pro úroveň, na kterou provádíte škálování, toto databases
nastavení se zachová a neztratí se žádná data.
- Pokud používáte vlastní počet
databases
, který překračuje limity nové úrovně, databases
nastavení se sníží na limity nové úrovně a všechna data v odebraných databázích se ztratí.
- Když škálujete na cenovou úroveň se stejným nebo vyšším
databases
limitem, než je aktuální úroveň, nastavení databases
se zachová a neztratí se žádná data.
Zatímco mezipaměti Standard, Premium, Enterprise a Enterprise Flash mají smlouvu SLA pro dostupnost, neexistuje žádná smlouva SLA pro ztrátu dat.
Je moje mezipaměť dostupná během škálování?
- Mezipaměti Standard, Premium, Enterprise a Enterprise Flash zůstanou během operace škálování dostupné. Při škálování těchto mezipamětí může ale dojít k výpadkům připojení, a také při škálování z mezipaměti Basic na Standard. Očekává se, že tyto tři tečky připojení budou malé a klienti Redis můžou své připojení okamžitě znovu navázat.
- U mezipamětí Enterprise a Enterprise Flash využívající aktivní geografickou replikaci může škálování pouze podmnožinu propojených mezipamětí v některých případech představovat problémy. Pokud je to možné, doporučujeme škálovat všechny mezipaměti ve skupině geografické replikace společně.
-
Základní mezipaměti jsou offline během operací škálování na jinou velikost. Základní mezipaměti zůstávají dostupné při škálování z Basic na Standard, ale mohou se objevit malé výpadky připojení. Pokud dojde ke třem tečkám připojení, klienti Redis můžou své připojení okamžitě znovu navázat.
Je škálování při geografické replikaci omezeno?
Při konfiguraci pasivní geografické replikace si můžete všimnout, že nemůžete škálovat mezipaměť ani měnit horizontální oddíly v clusteru. Propojení geografické replikace mezi dvěma mezipamětí vám brání v operaci škálování nebo změně počtu horizontálních oddílů v clusteru. Pokud chcete tyto příkazy vydat, musíte zrušit propojení mezipaměti. Další informace najdete v tématu Konfigurace geografické replikace.
Když je nakonfigurovaná aktivní geografická replikace , můžete škálovat mezipaměť s určitými omezeními. Všechny mezipaměti ve skupině geografické replikace musí mít stejnou velikost a kapacitu. Další informace najdete v tématu Konfigurace aktivní geografické replikace pro instance Enterprise Azure Cache for Redis.
Operace, které nejsou podporované
- Nemůžete škálovat z vyšší cenové úrovně na nižší cenovou úroveň.
- Nejde škálovat z mezipaměti Premium dolů na mezipaměť Standard nebo Základní.
- Nejde škálovat z mezipaměti Standard dolů do mezipaměti Basic .
- Můžete škálovat z mezipaměti Basic na mezipaměť Standard, ale nemůžete změnit velikost současně. Pokud potřebujete jinou velikost, můžete provést operaci škálování na požadovanou velikost později.
- Nemůžete škálovat z mezipaměti Basic přímo do mezipaměti Premium . Nejprve škálujte z úrovně Basic na Standard v jedné operaci škálování a pak v pozdější operaci škálujte z úrovně Standard na Premium .
- Nemůžete škálovat z mezipaměti Premium na mezipaměť Enterprise nebo Enterprise Flash .
- Nejde škálovat z větší velikosti na velikost C0 (250 MB).
Pokud operace škálování selže, služba se pokusí operaci vrátit zpět a mezipaměť se vrátí k původní velikosti.
Jak dlouho škálování trvá?
Doba škálování závisí na několika faktorech. Na to, jak dlouho škálování trvá, můžou mít vliv následující faktory:
- Množství dat: Replikace větších objemů dat trvá delší dobu.
- Vysoké požadavky na zápis: Vyšší počet zápisů znamená, že se více dat replikuje napříč uzly nebo horizontálními oddíly.
- Vysoké zatížení serveru: Vyšší zatížení serveru znamená, že server Redis je zaneprázdněný a k dokončení redistribuce dat jsou k dispozici omezené cykly procesoru.
Škálování mezipaměti není triviální akce a může trvat dlouhou dobu. Škálování mezipaměti s jedním až dvěma shardy může trvat jednu až dvě hodiny, pokud není pod velkým zatížením. Pokud máte více částí, čas na rozšíření se nezvyšuje lineárním způsobem.
Jak zjistím, kdy je škálování dokončeno?
Na webu Azure Portal uvidíte probíhající operaci škálování. Po dokončení škálování se stav mezipaměti změní na Spuštěno.
Musím v klientské aplikaci udělat nějaké změny, aby bylo možné clustering používat?
Důležité
Při použití úrovní Enterprise nebo Enterprise FLash máte na výběr režim clusteru operačního systému nebo režim podnikového clusteru. Režim clusteru OSS je stejný jako clustering na úrovni Premium a dodržuje specifikaci open source clusteringu. Režim podnikového clusteru může být méně výkonný, ale používá clustering Redis Enterprise, který nevyžaduje žádné změny klienta k použití. Další informace najdete v tématu Clustering.
Jak jsou klíče distribuovány v clusteru?
V dokumentaci k Redisu o distribučním modelu klíčů: Prostor klíčů je rozdělený na 16 384 slotů. Každý klíč je hashovaný a přiřazený jednomu z těchto slotů, které jsou distribuovány napříč uzly clusteru. Můžete nakonfigurovat, která část klíče je hashována, a zajistit tak umístění více klíčů ve stejném horizontálním oddílu pomocí mřížek.
- Klíče s mřížkou – pokud je některá část klíče uzavřená ve znacích
{
a }
, je tato část klíče hashována pouze pro účely určení slotu hash klíče. Například následující tři klíče by se nacházely ve stejném horizontálním oddílu: {key}1
, {key}2
a {key}3
, protože je hashována pouze část názvu key
. Úplný seznam specifikací značek hash klíčů najdete v tématu Značky hash klíčů.
- Klíče bez mřížky – k hashování se používá celý název klíče, což vede ke statisticky rovnoměrné distribuci napříč horizontálními oddíly mezipaměti.
Pro zajištění nejlepšího výkonu a propustnosti doporučujeme distribuovat klíče rovnoměrně. Pokud používáte klíče s mřížkou, je zajištění rovnoměrné distribuce klíčů zodpovědností aplikace.
Další informace najdete v tématu Distribuční model klíčů, horizontální dělení dat clusteru Redis a značky hash klíčů.
Ukázkový kód o práci s clusteringem a vyhledání klíčů ve stejném horizontálním oddílu s klientem StackExchange.Redis najdete v clustering.cs části ukázky Hello World .
Jaká je největší velikost mezipaměti, kterou mohu vytvořit?
Největší velikost mezipaměti, kterou můžete mít, je 4,5 TB. Výsledkem je clusterovaná mezipaměť F1500 s kapacitou 9. Další informace najdete v tématu Azure Cache for Redis – ceny.
Podporují clustering všichni klienti Redis?
Mnoho knihoven klientů podporuje clustering Redis, ale ne všechny. Projděte si dokumentaci ke knihovně, kterou používáte, a ověřte, že používáte knihovnu a verzi, která podporuje clustering. StackExchange.Redis je jedna knihovna, která podporuje clustering v novějších verzích. Další informace o jiných klientech najdete v části Přehrávání s clusteremv kurzu clusteru Redis.
Protokol clusteringu Redis vyžaduje, aby se každý klient připojil ke každému horizontálnímu oddílu přímo v režimu clusteringu a také definuje nové chybové odpovědi, například MOVED
na CROSSSLOTS
. Když se pokusíte použít klientskou knihovnu, která nepodporuje clustering s cache v režimu clusteru, může to vést k mnoha výjimkám přesměrování PŘESUNUTO nebo může dojít k selhání vaší aplikace, pokud provádíte víceklíčové požadavky napříč sloty.
Poznámka:
Pokud jako klienta používáte StackExchange.Redis, ověřte, že používáte nejnovější verzi StackExchange.Redis 1.0.481 nebo novější pro správné fungování clusteringu. Další informace o všech problémech s výjimkami přesunutí najdete v tématu Výjimky přesunutí.
Návody připojit se k mezipaměti při povolení clusteringu?
Ke své mezipaměti se můžete připojit pomocí stejných koncových bodů, portů a klíčů , které používáte při připojování k mezipaměti, která nemá povolené clustering. Redis spravuje clustering na back-endu, takže ho nemusíte spravovat ze svého klienta.
Můžu se přímo připojit k jednotlivým horizontálním oddílům mezipaměti?
Protokol clusteringu vyžaduje, aby klient udělal správná připojení horizontálních oddílů, takže klient by měl za vás vytvářet sdílená připojení. V tomto případě se každý horizontální oddíl skládá z dvojice mezipaměti primární/repliky, která se souhrnně označuje jako instance mezipaměti. K těmto instancím mezipaměti se můžete připojit pomocí nástroje Redis-CLI v nestabilní větvi úložiště Redis na GitHubu. Tato verze implementuje základní podporu při spuštění přepínače -c
. Další informace najdete v tématu Přehrávání s clusterem v https://redis.iokurzu clusteru Redis.
K určení správného portu, ke kterému se chcete připojit, musíte použít -p
přepínač. Pomocí příkazu UZLY CLUSTERu určete přesné porty používané pro primární uzly a uzly repliky. Používají se následující rozsahy portů:
- Pro mezipaměti úrovně Premium jiné než TLS jsou v rozsahu
130XX
k dispozici porty.
- V případě mezipamětí úrovně Premium s povoleným protokolem TLS jsou porty dostupné v rozsahu
150XX
.
- V případě mezipamětí Enterprise a Enterprise Flash pomocí clusteringu operačního systému je počáteční připojení přes port 10000. Připojení k jednotlivým uzlům je možné provést pomocí portů v rozsahu 85XX. Porty 85xx se v průběhu času změní a neměly by být pevně zakódované do vaší aplikace.
Ano. Nejprve se ujistěte, že je vaše mezipaměť ve vrstvě Premium vertikálním navýšením kapacity. Dále uvidíte možnosti konfigurace clusteru, včetně možnosti pro povolení clusteru. Po vytvoření mezipaměti změňte velikost clusteru nebo po prvním povolení clusteringu.
Důležité
Povolení clusteringu nejde vrátit zpět. Mezipaměť s povoleným shardingem a pouze jedním shardem se chová jinak než mezipaměť se stejnou velikostí, ale bez clusteringu.
Všechny mezipaměti na úrovni Enterprise a Enterprise Flash jsou vždy clusterované.
Clustering je k dispozici pouze pro mezipaměti Premium, Enterprise a Enterprise Flash.
Můžu používat clustering se zprostředkovateli stavu relace a výstupní mezipaměti Redis ASP.NET?
-
Zprostředkovatel výstupní mezipaměti Redis – nevyžaduje se žádné změny.
-
Zprostředkovatel stavu relace Redis – pokud chcete použít clustering, musíte použít RedisSessionStateProvider 2.0.1 nebo vyšší nebo je vyvolán výjimka, což je zásadní změna. Další informace najdete v tématu v2.0.0 Podrobnosti o zásadní změně.
Při používání StackExchange.Redis a clusteringu dochází k výjimkám MOVE, co mám dělat?
Pokud používáte StackExchange.Redis a při používání clusteringu dostáváte MOVE
výjimky, ujistěte se, že používáte StackExchange.Redis 1.1.603 nebo novější.
Jaký je rozdíl mezi clusteringem operačního systému a podnikovým clusteringem v mezipaměti na úrovni Enterprise?
Režim clusteru OSS je stejný jako clustering na úrovni Premium a dodržuje specifikaci open source clusteringu. Režim podnikového clusteru může být méně výkonný, ale používá clustering Redis Enterprise, který nevyžaduje žádné změny klienta. Další informace najdete v tématu Clustering.
Kolik horizontálních oddílů používá mezipaměť podnikové vrstvy?
Na rozdíl od mezipamětí úrovně Basic, Standard a Premium můžou mezipaměti Enterprise a Enterprise Flash využívat více horizontálních oddílů na jednom uzlu. Další informace najdete v tématu Konfigurace horizontálního dělení.
Další kroky