Š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 Yes Ano (Preview)
Vertikálně snížit kapacitu Ano Ano No
Škálování na více instancí No Ano Ano (Preview)
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ů. Z tohoto důvodu 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. Zkontrolujte metriky Čtení mezipaměti a Zápis do mezipaměti a zjistěte, kolik šířky pásma na straně serveru se používá. 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.

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í.
  • Nejde škálovat z větší velikosti na velikost C0 (250 MB). Můžete ale vertikálně snížit kapacitu na libovolnou jinou velikost ve stejné cenové úrovni. Můžete například vertikálně snížit kapacitu z úrovně C5 Standard na úroveň 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 k dispozici podpora ga pro horizontální 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 snížení kapacity pomocí webu Azure Portal

  1. Pokud chcete škálovat mezipaměť, přejděte do mezipaměti na webu Azure Portal a v nabídce Prostředek vyberte Škálovat .

    Screenshot showing Scale on the resource menu.

  2. V pracovním podokně zvolte cenovou úroveň a pak zvolte Vybrat.

    Screenshot showing the Azure Cache for Redis tiers.

  3. Zatímco se mezipaměť škáluje na novou úroveň, zobrazí se oznámení o škálování redis Cache .

    Screenshot showing the notification of scaling.

  4. Po dokončení škálování se stav změní ze škálování na Spuštěno.

Poznámka:

Při vertikálním navýšení nebo snížení kapacity mezipaměti pomocí portálu se nastavení maxmemory-reservedmaxfragmentationmemory-reserved automaticky škáluje v poměru k velikosti mezipaměti. Pokud maxmemory-reserved je například nastavená na 3 GB v 6GB mezipaměti a škálujete na 12 GB mezipaměti, nastavení se během škálování automaticky aktualizuje na 6 GB. Když vertikálně snížit kapacitu, stane se obráceně.

Vertikální navýšení a snížení kapacity pomocí PowerShellu

Instance Azure Cache for Redis můžete škálovat pomocí PowerShellu pomocí rutiny Set-AzRedisCache při úpravě Sizenebo Sku vlastností. Následující příklad ukazuje, jak škálovat mezipaměť s názvem myCache na 6 GB mezipaměti ve stejné vrstvě.

   Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -Size 6GB

Další informace o škálování pomocí PowerShellu najdete v tématu Škálování služby Azure Cache for Redis pomocí PowerShellu.

Vertikální navýšení a snížení kapacity pomocí Azure CLI

Pokud chcete škálovat instance Azure Cache for Redis pomocí Azure CLI, zavolejte příkaz az redis update . sku.capcity Pomocí vlastnosti můžete škálovat v rámci vrstvy, například z mezipaměti Standard C0 do mezipaměti Standard C1:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.capacity"="2"

Pomocí vlastností sku.name a sku.family můžete vertikálně navýšit kapacitu na jinou úroveň, například z mezipaměti Standard C1 do mezipaměti Premium P1:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.name"="Premium" "sku.capacity"="1" "sku.family"="P"

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) se v rámci žádosti o aktualizaci ignorují nebo maxmemory-reservedmaxfragmentationmemory-reserved ignorují. 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.

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

  1. Pokud chcete škálovat mezipaměť, přejděte do mezipaměti na webu Azure Portal a v nabídce Prostředek vyberte Škálovat .

    Screenshot showing Scale selected in the Resource menu for an Enterprise cache.

  2. 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.

    Screenshot showing the Enterprise tiers in the working pane.

  3. 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.

    Screenshot showing Capacity in the working pane a red box around it.

  4. Zatímco se mezipaměť škáluje na novou úroveň, zobrazí se oznámení o škálování redis Cache .

    Screenshot showing notification of scaling an Enterprise cache.

  5. 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?

  • 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ěť Basicu na jinou velikost, vypne se 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. 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 nelze 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í, 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.

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 má omezené cykly procesoru pro dokončení redistribuce dat.

Obecně platí, že když škálujete mezipaměť bez dat, trvá přibližně 20 minut. U clusterovaných mezipamětí trvá škálování přibližně 20 minut na horizontální oddíl s minimálními daty.

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 klientská aplikace používá více databází a pokusí se číst nebo zapisovat do jiné databáze než 0, 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 s poskytovateli Ukládání do mezipaměti relace Redis ASP.NET stavu a výstupu?

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}2a {key}3 protože pouze key čá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ázkyHello 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, jako je 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í na jednotlivé uzly je možné provádět 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.

Je možné používat clustering s poskytovateli ASP.NET stavu relace Redis a výstupu Ukládání do mezipaměti?

  • 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.

Další kroky