Škálování instance Azure Cache for Redis
Azure Cache for Redis nabízí různé úrovně, které poskytují flexibilitu při výběru velikosti a funkcí mezipaměti. Při škálování můžete po vytvoření instance mezipaměti změnit velikost, vrstvu a počet uzlů tak, aby odpovídaly potřebám vaší aplikace. V tomto článku se dozvíte, jak škálovat mezipaměť pomocí webu Azure Portal a nástrojů, jako je Azure PowerShell a Azure CLI.
Typy škálování
V zásadě existují dva způsoby škálování instance Azure Cache for Redis:
Vertikální navýšení kapacity zvyšuje velikost virtuálního počítače, na kterém běží server Redis, a přidává další paměť, virtuální procesory (vCPU) a šířku pásma sítě. Vertikální škálování se také označuje jako vertikální škálování. Opakem vertikálního navýšení kapacity je vertikální snížení kapacity.
Horizontální navýšení kapacity rozdělí instanci mezipaměti na více uzlů se stejnou velikostí, zvýšení paměti, vCPU a šířky pásma sítě prostřednictvím paralelizace. Horizontální navýšení kapacity se také označuje jako horizontální škálování nebo horizontální dělení. Opakem horizontálního navýšení kapacity je horizontální navýšení kapacity. V komunitě Redis se horizontální navýšení kapacity často označuje jako clustering.
Rozsah dostupnosti
Úroveň | Basic a Standard | Premium | Enterprise a Enterprise Flash |
---|---|---|---|
Vertikálně navýšit kapacitu | Ano | Ano | Yes |
Vertikálně snížit kapacitu | Ano | Ano | No |
Škálování na více instancí | No | Ano | Yes |
Horizontální snížení kapacity | No | Ano | No |
Kdy škálovat
Ke sledování stavu a výkonu mezipaměti můžete použít funkce monitorování služby Azure Cache for Redis. Tyto informace slouží k určení, kdy se má mezipaměť škálovat.
Pokud potřebujete škálovat, můžete monitorovat následující metriky.
- Načtení serveru Redis
- Vysoké zatížení serveru Redis znamená, že server nemůže držet krok s požadavky ze všech klientů. Vzhledem k tomu, že server Redis je jeden proces s vlákny, je obvykle užitečnější škálovat na více instancí než vertikálně navýšit kapacitu. Horizontální navýšení kapacity povolením clusteringu pomáhá distribuovat režijní funkce napříč několika procesy Redis. Horizontální navýšení kapacity také pomáhá distribuovat šifrování/dešifrování protokolu TLS a připojení/odpojení a zrychlit instance mezipaměti pomocí protokolu TLS.
- Vertikální navýšení kapacity může být stále užitečné při snižování zatížení serveru, protože úlohy na pozadí můžou využívat více virtuálních procesorů a uvolnit vlákno pro hlavní proces serveru Redis.
- Úrovně Enterprise a Enterprise Flash používají Redis Enterprise místo open source Redis. Jednou z výhod těchto úrovní je, že proces serveru Redis může využívat více virtuálních procesorů. S několika virtuálními procesory může být horizontální navýšení kapacity i horizontální navýšení kapacity v těchto úrovních užitečné při snížení zatížení serveru. Další informace najdete v tématu Osvědčené postupy pro úrovně Enterprise a Enterprise Flash služby Azure Cache for Redis.
- Využití paměti
- Vysoké využití paměti znamená, že velikost dat je pro aktuální velikost mezipaměti příliš velká. Zvažte škálování na velikost mezipaměti s větší pamětí. Vertikální navýšení kapacity nebo horizontální navýšení kapacity je tady efektivní.
- Klientská připojení
- Každá velikost mezipaměti má limit počtu klientských připojení, která může podporovat. Pokud se připojení klientů blíží limitu velikosti mezipaměti, zvažte vertikální navýšení kapacity na větší úroveň. Horizontální navýšení kapacity nezvyšuje počet podporovaných klientských připojení.
- Další informace o omezeních připojení podle velikosti mezipaměti najdete v tématu Ceny služby Azure Cache for Redis.
- Šířka pásma sítě
- Pokud server Redis překročí dostupnou šířku pásma, klienti můžou časového limitu, protože server nemůže odesílat data klientovi dostatečně rychle. Pokud chcete zjistit, kolik šířky pásma na straně serveru se používá, zkontrolujte metriky Čtení mezipaměti a Zápis do mezipaměti. Pokud váš server Redis překračuje dostupnou šířku pásma sítě, měli byste zvážit horizontální navýšení kapacity nebo vertikální navýšení kapacity na větší velikost mezipaměti s větší šířkou pásma sítě.
- U mezipamětí podnikové úrovně pomocí zásad podnikového clusteru horizontální navýšení kapacity nezvyšuje šířku pásma sítě.
- Další informace o dostupné šířce pásma sítě podle velikosti mezipaměti najdete v nejčastějších dotazech k plánování služby Azure Cache for Redis.
- Interní kontroly v programu Defender
- U mezipamětí C0 a C1 Úrovně Standard se v době, kdy na virtuálních počítačích běží interní kontrola Defenderu, můžou nacházet krátké špičky v zatížení serveru, které nejsou způsobené nárůstem požadavků na mezipaměť. Při interních kontrolách Defenderu se na těchto úrovních několikrát denně zobrazuje vyšší latence požadavků. Mezipaměti na úrovních C0 a C1 mají pouze jedno jádro pro vícetask a rozdělují práci obsluhy interní kontroly Defenderu a požadavků Redis. Účinek můžete snížit škálováním na vyšší úroveň nabídky s více jádry procesoru, například C2.
- Zvýšená velikost mezipaměti na vyšších úrovních pomáhá řešit případné problémy s latencí. Na úrovni C2 máte také podporu až pro 2 000 klientských připojení.
Další informace o určení cenové úrovně mezipaměti, která se má použít, najdete v tématu Výběr správné úrovně a nejčastějších dotazů k plánování služby Azure Cache for Redis.
Poznámka:
Další informace o optimalizaci procesu škálování najdete v doporučených postupech pro průvodce škálováním.
Požadavky a omezení škálování služby Azure Cache for Redis
Kapacitu můžete vertikálně navýšit nebo snížit na jinou cenovou úroveň s následujícími omezeními:
- Nemůžete škálovat z vyšší cenové úrovně na nižší cenovou úroveň.
- Z mezipaměti Enterprise nebo Enterprise Flash nejde škálovat na jinou úroveň.
- Nejde škálovat z mezipaměti Premium dolů na mezipaměť Úrovně Standard nebo Basic .
- Nejde škálovat z mezipaměti Standard dolů do mezipaměti Basic .
- Velikost můžete škálovat z mezipaměti Basic na mezipaměť Úrovně Standard , ale nemůžete změnit velikost současně. Pokud potřebujete jinou velikost, můžete později provést operaci škálování na požadovanou velikost.
- 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 další operaci škálování.
- Velikost z větší velikosti na velikost C0 (250 MB) nejde škálovat. Můžete se ale škálovat na libovolnou jinou velikost ve stejné cenové úrovni. Můžete například škálovat z C5 Standard na C1 Standard.
- Nejde škálovat z mezipaměti Premium, Standard nebo Basic až do mezipaměti Enterprise nebo Enterprise Flash .
- Nejde škálovat mezi Enterprise a Enterprise Flashem.
Horizontální navýšení/snížení kapacity můžete provést s následujícími omezeními:
- Horizontální navýšení kapacity se podporuje jenom na úrovních Premium, Enterprise a Enterprise Flash .
- Škálování se podporuje jenom na úrovni Premium .
- Na úrovni Premium musí být clustering před horizontálním navýšením nebo snížením kapacity povolen jako první.
- Na úrovni Premium je obecně dostupná podpora horizontálního navýšení kapacity až na 10 horizontálních oddílů. Podpora až 30 horizontálních oddílů je ve verzi Preview. (Pro mezipaměti se dvěma replikami je limit horizontálního dělení 20. Se třemi replikami je limit horizontálních oddílů 15.)
- Kapacitu a horizontální navýšení kapacity najednou můžou vertikálně navýšit a vertikálně navýšit kapacitu jenom úrovně Enterprise a Enterprise Flash .
Škálování – úrovně Basic, Standard a Premium
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í vertikální snížení kapacity nebo škálování v operacích.
Škálování pomocí webu Azure Portal
Pokud chcete škálovat mezipaměť, přejděte do mezipaměti na webu Azure Portal 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. Nejde vertikálně snížit kapacitu.
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. Nejde škálovat.
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í pomocí PowerShellu
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í pomocí 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
Nejčastější 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?
- Po škálování musím změnit název mezipaměti nebo přístupové klíče?
- Jak škálování funguje?
- Při škálování ztratím data z mezipaměti?
- Můžu po škálování používat všechny funkce úrovně Premium?
- Týká se nastavení vlastních databází během škálování?
- Bude mezipaměť dostupná během škálování?
- Existují omezení škálování u geografické replikace?
- Operace, které nejsou podporované
- Jak dlouho trvá škálování?
- Jak zjistím, kdy je škálování dokončené?
- Musím v klientské aplikaci udělat nějaké změny, aby bylo možné clustering používat?
- Jak se klíče distribuují v clusteru?
- Jaká je největší velikost mezipaměti, kterou můžu vytvořit?
- Podporují clustering všichni klienti Redis?
- Návody připojit se k mezipaměti při povolení clusteringu?
- Můžu se přímo připojit k jednotlivým horizontálním oddílům mezipaměti?
- Můžu nakonfigurovat clustering pro dříve vytvořenou mezipaměť?
- Můžu nakonfigurovat clustering pro základní nebo standardní mezipaměť?
- Můžu používat clustering se zprostředkovateli stavu relace a výstupní mezipaměti Redis ASP.NET?
- Při používání StackExchange.Redis a clusteringu dochází k výjimkám MOVE, co mám dělat?
- Jaký je rozdíl mezi clusteringem operačního systému a podnikovým clusteringem v mezipamětí na podnikové úrovni?
- Kolik horizontálních oddílů používá mezipaměť podnikové vrstvy?
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.
Po škálování musím 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 do mezipaměti Úrovně 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 zopakuje na novou velikost a přenášená data a druhá replika provede převzetí služeb při selhání před opětovným zřízením, 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 horizontálně dě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.
- V některých případech, například škálování nebo migrace 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 umožňujících provoz do mezipaměti, může mít vaše aplikace po aktualizaci záznamů DNS potíže.
Při škálování ztratím 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 velikost dat překročí novou menší velikost při vertikálním snížení kapacity mezipaměti. Pokud při vertikálním snížení kapacity dojde ke ztrátě dat, klíče se vyřadí pomocí zásad vyřazení 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:
- Injektáž virtuální 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í, totodatabases
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í.
- Pokud používáte výchozí počet
- 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.
Bude 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í ale může dojít ke třem tečká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 úrovně Basic na standard , ale můžou se vyskytnout malé tři tečky připojení. Pokud dojde ke třem tečkám připojení, klienti Redis můžou své připojení okamžitě znovu navázat.
Existují omezení škálování u geografické replikace?
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 , nemůžete škálovat mezipaměť. Všechny mezipaměti ve skupině geografické replikace musí mít stejnou velikost a kapacitu.
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ěť Úrovně Standard nebo Basic .
- Nejde škálovat z mezipaměti Standard dolů do mezipaměti Basic .
- Velikost můžete škálovat z mezipaměti Basic na mezipaměť Úrovně 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 trvá škálování?
Doba škálování závisí na několika faktorech. Tady jsou některé faktory, které můžou ovlivnit, jak dlouho škálování trvá.
- 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í a může trvat dlouhou dobu.
Na základě příkladů z reálného světa může být doba škálování mezipaměti s jedním až dvěma horizontálními oddíly 1 až 2 hodiny, pokud mezipaměť není pod velkým zatížením. Pokud máte více horizontálníchoddílůch
Jak zjistím, kdy je škálování dokončené?
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?
Při povolení clusteringu je k dispozici pouze databáze 0. Pokud vaše klientská aplikace používá více databází a pokusí se číst nebo zapisovat do jiné databáze než nula, vyvolá se následující výjimka:
Unhandled Exception: StackExchange.Redis.RedisConnectionException: ProtocolFailure on GET --->
StackExchange.Redis.RedisCommandException: Multiple databases are not supported on this server; cannot switch to database: 6
Další informace naleznete v tématu Specifikace clusteru Redis – implementovaná podmnožina.
Pokud používáte StackExchange.Redis, musíte použít verzi 1.0.481 nebo novější. K mezipaměti se připojujete pomocí stejných koncových bodů, portů a klíčů , které používáte při připojování k mezipaměti, kde je clustering zakázaný. Jediným rozdílem je, že všechny čtení a zápisy musí být provedeny s databází 0.
Ostatní klienti můžou mít jiné požadavky. Zobrazit všechny klienty Redis podporují clustering?
Pokud vaše aplikace používá více operací s klíči dávkově do jednoho příkazu, musí být všechny klíče umístěny ve stejném horizontálním oddílu. Pokud chcete najít klíče ve stejném horizontálním oddílu, přečtěte si téma Jak se klíče distribuují v clusteru?
Pokud používáte redis ASP.NET poskytovatele stavu relace, musíte použít verzi 2.0.1 nebo vyšší. Viz Možnost použití clusteringu se zprostředkovateli stavu relace a výstupní mezipaměti Redis ASP.NET?
Důležité
Při použití úrovní Enterprise nebo Enterprise FLash máte na výběr režim clusteru OSS 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 v podniku.
Jak se klíče distribuují 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, aby se zajistilo, že se více klíčů nachází ve stejném horizontálním oddílu pomocí značek hash.
- Klíče se značkou hash – pokud je některá část klíče uzavřená
{
a}
tato část klíče je 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 pouzekey
část názvu je hashována. Úplný seznam specifikací značek hash klíčů najdete v tématu Značky hash klíčů. - Klíče bez značky hash – celý název klíče se používá k hashování, 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 rovnoměrně distribuovat klíče. Pokud používáte klíče se značkou hash, je zodpovědností aplikace zajistit rovnoměrné distribuce klíčů.
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 části ukázky Hello World clustering.cs.
Jaká je největší velikost mezipaměti, kterou můžu 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 clusterem v 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 mezipamětí režimu clusteru, může být výsledkem mnoho výjimek přesměrování PŘESUNUTO, nebo jednoduše přerušit aplikaci, pokud provádíte vícesměrové požadavky na více klíčů mezi 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.io kurzu 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.
Můžu nakonfigurovat clustering pro dříve vytvořenou mezipaměť?
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 clusteringem a pouze jeden horizontální oddíl se chová jinak než mezipaměť se stejnou velikostí bez clusteringu.
Všechny mezipaměti na úrovni Enterprise a Enterprise Flash jsou vždy clusterované.
Můžu nakonfigurovat clustering pro základní nebo standardní mezipaměť?
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ší. Pokyny ke konfiguraci aplikací .NET pro použití StackExchange.Redis najdete v tématu Konfigurace klientů mezipaměti.
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 v podniku.
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 Horizontální dělení a využití procesoru.