Udostępnij za pośrednictwem


Skalowanie wystąpienia usługi Azure Cache for Redis

Usługa Azure Cache for Redis oferuje różne oferty warstw, które zapewniają elastyczność wyboru rozmiaru i funkcji pamięci podręcznej. Skalowanie umożliwia zmianę rozmiaru, warstwy i liczby węzłów po utworzeniu wystąpienia pamięci podręcznej w celu dopasowania ich do potrzeb aplikacji. W tym artykule przedstawiono sposób skalowania pamięci podręcznej przy użyciu witryny Azure Portal oraz narzędzi, takich jak program Azure PowerShell i interfejs wiersza polecenia platformy Azure.

Typy skalowania

Istnieją zasadniczo dwa sposoby skalowania wystąpienia usługi Azure Cache for Redis:

  • Skalowanie w górę zwiększa rozmiar maszyny wirtualnej z uruchomionym serwerem Redis, dodając więcej pamięci, procesorów wirtualnych (vCPU) i przepustowości sieci. Skalowanie w górę jest również nazywane skalowaniem w pionie. Przeciwieństwem skalowania w górę jest skalowanie w dół.

  • Skalowanie na wejściu dzieli wystąpienie pamięci podręcznej na więcej węzłów o tym samym rozmiarze, zwiększając ilość pamięci, procesorów wirtualnych i przepustowość sieci poprzez równoległość. Skalowanie w poziomie jest również określane jako skalowanie w poziomie lub fragmentowanie. Przeciwieństwem skalowania w górę jest skalowanie w. W społeczności usługi Redis skalowanie w górę jest często nazywane klastrowaniem.

Zakres dostępności

Warstwa Podstawowa i Standardowa Premium Enterprise and Enterprise Flash
Skalowanie w górę Tak Tak Tak
Skalowanie w dół Tak Tak Nie.
Skalowanie w poziomie Nie. Tak Tak
Skalowanie w Nie. Tak Nie.

Kiedy skalować

Funkcje monitorowania usługi Azure Cache for Redis umożliwiają monitorowanie kondycji i wydajności pamięci podręcznej. Użyj tych informacji, aby określić, kiedy skalować pamięć podręczną.

Możesz monitorować następujące metryki, aby określić, czy chcesz przeprowadzić skalowanie.

  • Ładowanie serwera Redis
    • Wysokie obciążenie serwera Redis oznacza, że serwer nie może nadążyć za żądaniami ze wszystkich klientów. Ponieważ serwer Redis jest pojedynczym procesem wątkowym, zwykle bardziej przydatne jest skalowanie w poziomie, a nie skalowanie w górę. Skalowanie w górę przez włączenie klastrowania pomaga dystrybuować funkcje narzutowe w wielu procesach usługi Redis. Skalowanie w górę pomaga również dystrybuować szyfrowanie/odszyfrowywanie protokołu TLS i połączenie/rozłączanie, przyspieszając wystąpienia pamięci podręcznej przy użyciu protokołu TLS.
    • Skalowanie w górę może być nadal przydatne w zmniejszaniu obciążenia serwera, ponieważ zadania w tle mogą korzystać z większej liczby procesorów wirtualnych i zwolnić wątek dla głównego procesu serwera Redis.
    • Warstwy Enterprise i Enterprise Flash używają usługi Redis Enterprise, a nie usługi Redis typu open source. Jedną z zalet tych warstw jest proces serwera Redis, który może korzystać z wielu procesorów wirtualnych. W przypadku wielu procesorów wirtualnych skalowanie w górę i skalowanie w poziomie w tych warstwach może być pomocne w zmniejszeniu obciążenia serwera.
  • Użycie pamięci
    • Wysokie użycie pamięci wskazuje, że rozmiar danych jest zbyt duży dla bieżącego rozmiaru pamięci podręcznej. Rozważ skalowanie do rozmiaru pamięci podręcznej z większą ilością pamięci. Skalowanie w górę lub skalowanie w górę jest skuteczne w tym miejscu.
  • Połączenia klienta
    • Każdy rozmiar pamięci podręcznej ma limit liczby połączeń klienta, które może obsługiwać. Jeśli połączenia klienta są zbliżone do limitu rozmiaru pamięci podręcznej, rozważ skalowanie w górę do większej warstwy. Skalowanie w górę nie zwiększa liczby obsługiwanych połączeń klienckich.
    • Aby uzyskać więcej informacji na temat limitów połączeń według rozmiaru pamięci podręcznej, zobacz Cennik usługi Azure Cache for Redis.
  • Przepustowość sieci
    • Jeśli serwer Redis przekracza dostępną przepustowość, żądania klientów mogą przekroczyć limit czasu, ponieważ serwer nie może wypychać danych do klienta wystarczająco szybko. Aby sprawdzić, ile przepustowości po stronie serwera jest używana, sprawdź metryki "Odczyt pamięci podręcznej" i "Zapis w pamięci podręcznej". Jeśli serwer Redis przekracza dostępną przepustowość sieci, rozważ skalowanie w poziomie lub skalowanie w górę do większego rozmiaru pamięci podręcznej o większej przepustowości sieci.
    • W przypadku pamięci podręcznych w warstwie Enterprise przy użyciu zasad klastra przedsiębiorstwa skalowanie w poziomie nie zwiększa przepustowości sieci.
    • Aby uzyskać więcej informacji na temat dostępnej przepustowości sieci według rozmiaru pamięci podręcznej, zobacz Planowanie usługi Azure Cache for Redis — często zadawane pytania.
  • Wewnętrzne skanowania w usłudze Defender
    • W pamięciach podręcznych C0 i C1 Standard, podczas gdy wewnętrzne skanowanie usługi Defender jest uruchomione na maszynach wirtualnych, mogą wystąpić krótkie skoki obciążenia serwera nie spowodowane wzrostem liczby żądań pamięci podręcznej. Zobaczysz większe opóźnienie żądań, podczas gdy wewnętrzne skanowania w usłudze Defender są uruchamiane w tych warstwach kilka razy dziennie. Pamięci podręczne w warstwach C0 i C1 mają tylko jeden rdzeń do multitask, dzieląc pracę obsługi wewnętrznych żądań skanowania usługi Defender i usługi Redis. Efekt można zmniejszyć, skalując do wyższej warstwy z wieloma rdzeniami procesora CPU, takimi jak C2.
    • Zwiększony rozmiar pamięci podręcznej w wyższych warstwach pomaga rozwiązać wszelkie problemy z opóźnieniami. Ponadto na poziomie C2 masz obsługę aż 2000 połączeń klienckich.

Aby uzyskać więcej informacji na temat określania warstwy cenowej pamięci podręcznej do użycia, zobacz Wybieranie odpowiedniej warstwy i Planowanie usługi Azure Cache for Redis — często zadawane pytania.

Uwaga

Aby uzyskać więcej informacji na temat optymalizowania procesu skalowania, zobacz najlepsze rozwiązania dotyczące skalowania— przewodnik

Wymagania wstępne/ograniczenia skalowania usługi Azure Cache for Redis

Możesz skalować w górę/w dół do innej warstwy cenowej z następującymi ograniczeniami:

  • Nie można skalować z wyższej warstwy cenowej do niższej warstwy cenowej.
    • Nie można skalować z pamięci podręcznej Enterprise lub Enterprise Flash w dół do żadnej innej warstwy.
    • Nie można skalować z pamięci podręcznej Premium w dół do pamięci podręcznej w warstwie Standardowa lub Podstawowa.
    • Nie można skalować z pamięci podręcznej w warstwie Standardowa do pamięci podręcznej w warstwie Podstawowa.
  • Można skalować z pamięci podręcznej w warstwie Podstawowa do pamięci podręcznej w warstwie Standardowa, ale nie można jednocześnie zmieniać rozmiaru. Jeśli potrzebujesz innego rozmiaru, możesz później wykonać operację skalowania do żądanego rozmiaru.
  • Nie można skalować z pamięci podręcznej w warstwie Podstawowa bezpośrednio do pamięci podręcznej Premium. Najpierw przeprowadź skalowanie z warstwy Podstawowa do Standardowa w ramach jednej operacji skalowania, a następnie z warstwy Standardowa do Warstwy Premium w następnej operacji skalowania.
  • Nie można skalować z większego rozmiaru do rozmiaru C0 (250 MB). Można jednak skalować w poziomie do dowolnego innego rozmiaru w tej samej warstwie cenowej. Na przykład można skalować w poziomie od C5 Standard do C1 Standard.
  • Nie można skalować z pamięci podręcznej w warstwie Premium, Standardowa ani Podstawowa do pamięci podręcznej Flash Enterprise lub Enterprise.
  • Nie można skalować między rozwiązaniem Enterprise i Enterprise Flash.

Możesz skalować w poziomie/w z następującymi ograniczeniami:

  • Skalowanie w poziomie jest obsługiwane tylko w warstwach Premium, Enterprise i Flash Enterprise.
  • Skalowanie w poziomie jest obsługiwane tylko w warstwie Premium .
  • W warstwie Premium należy najpierw włączyć klastrowanie przed skalowaniem w poziomie lub w poziomie.
  • W warstwie Premium obsługa skalowania w poziomie do 10 fragmentów jest ogólnie dostępna. Obsługa maksymalnie 30 fragmentów jest dostępna w wersji zapoznawczej. (W przypadku pamięci podręcznych z dwiema replikami limit fragmentu wynosi 20. W przypadku trzech replik limit fragmentów wynosi 15).
  • Tylko warstwy Enterprise i Enterprise Flash można skalować w górę i skalować w poziomie jednocześnie.

Jak skalować — warstwy Podstawowa, Standardowa i Premium

Skalowanie w górę i w dół przy użyciu witryny Azure Portal

  1. Aby skalować pamięć podręczną, przejdź do pamięci podręcznej w witrynie Azure Portal i wybierz pozycję Skaluj z menu Zasób.

    Zrzut ekranu przedstawiający menu Skalowanie w menu zasobów.

  2. Wybierz warstwę cenową w okienku roboczym, a następnie wybierz pozycję Wybierz.

    Zrzut ekranu przedstawiający warstwy usługi Azure Cache for Redis.

  3. Gdy pamięć podręczna jest skalowana do nowej warstwy, zostanie wyświetlone powiadomienie skalowania pamięci podręcznej Redis Cache .

    Zrzut ekranu przedstawiający powiadomienie o skalowaniu.

  4. Po zakończeniu skalowania stan zmienia się z Skalowanie na Uruchomione.

Uwaga

W przypadku skalowania pamięci podręcznej w górę lub w dół przy użyciu portalu oba maxmemory-reserved ustawienia są maxfragmentationmemory-reserved automatycznie skalowane proporcjonalnie do rozmiaru pamięci podręcznej. Jeśli na przykład maxmemory-reserved ustawiono wartość 3 GB w pamięci podręcznej 6 GB, a skalowanie do pamięci podręcznej 12 GB spowoduje automatyczne zaktualizowanie ustawień do 6 GB podczas skalowania. W przypadku skalowania w dół następuje odwrotnie.

Skalowanie w górę i w dół przy użyciu programu PowerShell

Wystąpienia usługi Azure Cache for Redis można skalować za pomocą programu PowerShell przy użyciu polecenia cmdlet Set-AzRedisCache po Sizezmodyfikowaniu właściwości lub Sku . W poniższym przykładzie pokazano, jak skalować pamięć podręczną o nazwie myCache do pamięci podręcznej o rozmiarze 6 GB w tej samej warstwie.

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

Aby uzyskać więcej informacji na temat skalowania za pomocą programu PowerShell, zobacz Aby skalować pamięć podręczną Azure Cache for Redis przy użyciu programu PowerShell.

Skalowanie w górę i w dół przy użyciu interfejsu wiersza polecenia platformy Azure

Aby skalować wystąpienia usługi Azure Cache for Redis przy użyciu interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az redis update . Użyj właściwości do skalowania sku.capcity w warstwie, na przykład z pamięci podręcznej Standardowa C0 do Standardowa C1:

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

Użyj właściwości "sku.name" i "sku.family", aby skalować w górę do innej warstwy, na przykład z pamięci podręcznej Standardowa C1 do pamięci podręcznej Premium P1:

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

Aby uzyskać więcej informacji na temat skalowania za pomocą interfejsu wiersza polecenia platformy Azure, zobacz Zmienianie ustawień istniejącej pamięci podręcznej Azure Cache for Redis.

Uwaga

W przypadku programowego skalowania pamięci podręcznej w górę lub w dół (np. przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure) dowolne maxmemory-reserved maxfragmentationmemory-reserved lub są ignorowane w ramach żądania aktualizacji. Uwzględniana jest tylko zmiana skalowania. Te ustawienia pamięci można zaktualizować po zakończeniu operacji skalowania.

Jak skalować w górę i w poziomie — warstwy Flash dla przedsiębiorstw i przedsiębiorstw

Warstwy Enterprise i Enterprise Flash umożliwiają skalowanie w górę i skalowanie w poziomie w ramach jednej operacji. Inne warstwy wymagają oddzielnych operacji dla każdej akcji.

Uwaga

Warstwy Flash Enterprise i Enterprise nie obsługują jeszcze skalowania w dół ani skalowania w operacjach.

Skalowanie przy użyciu witryny Azure Portal

  1. Aby skalować pamięć podręczną, przejdź do pamięci podręcznej w witrynie Azure Portal i wybierz pozycję Skaluj z menu Zasób.

    Zrzut ekranu przedstawiający opcję Skaluj wybraną w menu Zasób dla pamięci podręcznej przedsiębiorstwa.

  2. Aby skalować w górę, wybierz inny typ pamięci podręcznej, a następnie wybierz pozycję Zapisz.

    Ważne

    W tej chwili można skalować tylko w górę. Nie można skalować w dół.

    Zrzut ekranu przedstawiający warstwy przedsiębiorstwa w okienku roboczym.

  3. Aby skalować w poziomie, zwiększ suwak Pojemność . Zwiększenie pojemności zwiększa się o dwa. Ta liczba odzwierciedla liczbę dodawanych węzłów przedsiębiorstwa redis. Ta liczba jest zawsze wielokrotną liczbą dwóch, aby odzwierciedlić dodawane węzły zarówno dla fragmentów podstawowych, jak i replik.

    Ważne

    Obecnie można skalować tylko w poziomie, zwiększając pojemność. Nie można skalować w poziomie.

    Zrzut ekranu przedstawiający pojemność w okienku roboczym czerwone pole wokół niego.

  4. Gdy pamięć podręczna jest skalowana do nowej warstwy, zostanie wyświetlone powiadomienie skalowania pamięci podręcznej Redis Cache .

    Zrzut ekranu przedstawiający powiadomienie o skalowaniu pamięci podręcznej przedsiębiorstwa.

  5. Po zakończeniu skalowania stan zmienia się z Skalowanie na Uruchomione.

Skalowanie przy użyciu programu PowerShell

Wystąpienia usługi Azure Cache for Redis można skalować za pomocą programu PowerShell przy użyciu polecenia cmdlet Update-AzRedisEnterpriseCache . Możesz zmodyfikować właściwość w Sku celu skalowania wystąpienia w górę. Możesz zmodyfikować właściwość w Capacity celu skalowania wystąpienia w poziomie. W poniższym przykładzie pokazano, jak skalować pamięć podręczną o nazwie myCache do wystąpienia Enterprise E20 (25 GB) o pojemności 4.

   Update-AzRedisEnterpriseCache -ResourceGroupName myGroup -Name myCache -Sku Enterprise_E20 -Capacity 4

Skalowanie przy użyciu interfejsu wiersza polecenia platformy Azure

Aby skalować wystąpienia usługi Azure Cache for Redis przy użyciu interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az redisenterprise update . Możesz zmodyfikować właściwość w sku celu skalowania wystąpienia w górę. Możesz zmodyfikować właściwość w capacity celu skalowania wystąpienia w poziomie. W poniższym przykładzie pokazano, jak skalować pamięć podręczną o nazwie myCache do wystąpienia Enterprise E20 (25 GB) o pojemności 4.

az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --sku "Enterprise_E20" --capacity 4

Skalowanie — często zadawane pytania

Poniższa lista zawiera odpowiedzi na często zadawane pytania dotyczące skalowania usługi Azure Cache for Redis.

Czy mogę skalować do, z lub w pamięci podręcznej Premium?

  • Nie można skalować z pamięci podręcznej Premium w dół do warstwy cenowej Podstawowa lub Standardowa.
  • Możesz skalować z jednej warstwy cenowej pamięci podręcznej Premium do innej.
  • Nie można skalować z pamięci podręcznej w warstwie Podstawowa bezpośrednio do pamięci podręcznej Premium. Najpierw przeprowadź skalowanie z warstwy Podstawowa do Standardowa w ramach jednej operacji skalowania, a następnie z warstwy Standardowa do Warstwy Premium w ramach późniejszej operacji skalowania.
  • Nie można skalować z pamięci podręcznej Premium do pamięci podręcznej Enterprise lub Enterprise Flash.
  • Jeśli podczas tworzenia pamięci podręcznej Premium włączono klastrowanie, możesz zmienić rozmiar klastra. Jeśli pamięć podręczna została utworzona bez włączonego klastrowania, możesz skonfigurować klastrowanie w późniejszym czasie.

Czy po skalowaniu muszę zmienić nazwę pamięci podręcznej lub klucze dostępu?

Nie, nazwa pamięci podręcznej i klucze są niezmienione podczas operacji skalowania.

Jak działa skalowanie?

  • Podczas skalowania podstawowej pamięci podręcznej do innego rozmiaru pamięć podręczna jest zamykana, a nowa pamięć podręczna jest aprowizowana przy użyciu nowego rozmiaru. W tym czasie pamięć podręczna jest niedostępna i wszystkie dane w pamięci podręcznej zostaną utracone.
  • Podczas skalowania podstawowej pamięci podręcznej do pamięci podręcznej w warstwie Standardowa aprowizowana jest pamięć podręczna repliki, a dane są kopiowane z podstawowej pamięci podręcznej do pamięci podręcznej repliki. Pamięć podręczna pozostaje dostępna podczas procesu skalowania.
  • W przypadku skalowania pamięci podręcznej Flash w warstwie Standardowa, Premium, Enterprise lub Enterprise do innego rozmiaru jedna z replik jest zamykana i ponownie aprowizowana do nowego rozmiaru i przesyłanych danych, a następnie druga replika przechodzi w tryb failover, zanim zostanie ponownie zaaprowizowana, podobnie jak proces, który występuje podczas awarii jednego z węzłów pamięci podręcznej.
  • Podczas skalowania klastrowanej pamięci podręcznej nowe fragmenty są aprowidowane i dodawane do klastra serwera Redis. Dane są następnie ponownie podzielone na fragmenty.
  • Podczas skalowania w klastrowanej pamięci podręcznej dane są najpierw podzielone na fragmenty, a następnie rozmiar klastra jest zmniejszany do wymaganych fragmentów.
  • W niektórych przypadkach, takich jak skalowanie lub migrowanie pamięci podręcznej do innego klastra, podstawowy adres IP pamięci podręcznej może ulec zmianie. Rekord DNS dla pamięci podręcznej zmienia się i jest niewidoczny dla większości aplikacji. Jeśli jednak używasz adresu IP do skonfigurowania połączenia z pamięcią podręczną lub skonfigurowania sieciowych grup zabezpieczeń lub zapór zezwalających na ruch do pamięci podręcznej, aplikacja może mieć problemy z nawiązaniem połączenia czasami po aktualizacji rekordów DNS.

Czy utracię dane z pamięci podręcznej podczas skalowania?

  • Podczas skalowania pamięci podręcznej w warstwie Podstawowa do nowego rozmiaru wszystkie dane zostaną utracone, a pamięć podręczna będzie niedostępna podczas operacji skalowania.
  • Podczas skalowania podstawowej pamięci podręcznej do pamięci podręcznej w warstwie Standardowa dane w pamięci podręcznej są zwykle zachowywane.
  • W przypadku skalowania pamięci podręcznej Flash w warstwie Standardowa, Premium, Enterprise lub Enterprise wszystkie dane są zwykle zachowywane. W przypadku skalowania pamięci podręcznej w warstwie Standardowa lub Premium do mniejszego rozmiaru dane mogą zostać utracone, jeśli rozmiar danych przekroczy nowy mniejszy rozmiar, gdy pamięć podręczna jest skalowana w dół. Jeśli dane zostaną utracone podczas skalowania w dół, klucze są eksmitowane przy użyciu zasad eksmisji allkeys-lru .

Czy mogę używać wszystkich funkcji warstwy Premium po skalowaniu?

Nie, niektóre funkcje można ustawić tylko podczas tworzenia pamięci podręcznej w warstwie Premium i nie są dostępne po skalowaniu.

Nie można dodać tych funkcji po utworzeniu pamięci podręcznej Premium:

  • Wstrzykiwanie sieci wirtualnej
  • Dodawanie nadmiarowości strefy
  • Używanie wielu replik na podstawowy

Aby użyć dowolnej z tych funkcji, należy utworzyć nowe wystąpienie pamięci podręcznej w warstwie Premium.

Czy moje niestandardowe ustawienie baz danych ma wpływ na skalowanie?

Jeśli podczas tworzenia pamięci podręcznej skonfigurowano wartość niestandardową dla databases tego ustawienia, pamiętaj, że niektóre warstwy cenowe mają różne limity baz danych. Poniżej przedstawiono niektóre zagadnienia dotyczące skalowania w tym scenariuszu:

  • W przypadku skalowania do warstwy cenowej z niższym databases limitem niż bieżąca warstwa:
    • Jeśli używasz domyślnej databasesliczby , która jest 16 dla wszystkich warstw cenowych, żadne dane nie zostaną utracone.
    • Jeśli używasz niestandardowej databases liczby, która mieści się w granicach dla warstwy, do której jest skalowana, to databases ustawienie jest zachowywane i żadne dane nie zostaną utracone.
    • Jeśli używasz niestandardowej databases liczby, która przekracza limity nowej warstwy, databases ustawienie zostanie obniżone do limitów nowej warstwy, a wszystkie dane w usuniętych bazach danych zostaną utracone.
  • W przypadku skalowania do warstwy cenowej z tym samym lub wyższym databases limitem niż bieżąca warstwa databases ustawienie jest zachowywane i żadne dane nie zostaną utracone.

Chociaż pamięci podręczne Flash w warstwie Standardowa, Premium, Enterprise i Enterprise mają umowę SLA dotyczącą dostępności, nie ma umowy SLA dotyczącej utraty danych.

Czy moja pamięć podręczna będzie dostępna podczas skalowania?

  • Pamięci podręczne Flash w warstwie Standardowa, Premium, Enterprise i Enterprise pozostają dostępne podczas operacji skalowania. Jednak podczas skalowania tych pamięci podręcznych mogą wystąpić blipy połączeń, a także skalowanie z pamięci podręcznych w warstwie Podstawowa do Standardowa . Oczekuje się, że te blipy połączeń będą małe, a klienci redis mogą ponownie nawiązać połączenie natychmiast.
  • W przypadku pamięci podręcznych Flash przedsiębiorstwa i przedsiębiorstwa korzystających z aktywnej replikacji geograficznej skalowanie tylko podzestawu połączonych pamięci podręcznych może powodować problemy w niektórych przypadkach. Zalecamy skalowanie wszystkich pamięci podręcznych w grupie replikacji geograficznej tam, gdzie to możliwe.
  • Podstawowe pamięci podręczne są w trybie offline podczas operacji skalowania do innego rozmiaru. Pamięci podręczne w warstwie Podstawowa pozostają dostępne podczas skalowania z warstwy Podstawowa do Standardowa , ale mogą wystąpić małe blip połączenia. Jeśli wystąpi blip połączenia, klienci redis mogą zwykle ponownie nawiązać połączenie natychmiast.

Czy istnieją ograniczenia skalowania w przypadku replikacji geograficznej?

W przypadku skonfigurowania pasywnej replikacji geograficznej można zauważyć, że nie można skalować pamięci podręcznej ani zmieniać fragmentów w klastrze. Połączenie replikacji geograficznej między dwiema pamięciami podręcznymi uniemożliwia skalowanie operacji lub zmianę liczby fragmentów w klastrze. Należy odłączyć pamięć podręczną, aby wydać te polecenia. Aby uzyskać więcej informacji, zobacz Konfigurowanie replikacji geograficznej.

Po skonfigurowaniu aktywnej replikacji geograficznej nie można skalować pamięci podręcznej. Wszystkie pamięci podręczne w grupie replikacji geograficznej muszą mieć ten sam rozmiar i pojemność.

Operacje, które nie są obsługiwane

  • Nie można skalować z wyższej warstwy cenowej do niższej warstwy cenowej.
    • Nie można skalować z pamięci podręcznej Premium w dół do pamięci podręcznej w warstwie Standardowa lub Podstawowa.
    • Nie można skalować z pamięci podręcznej w warstwie Standardowa do pamięci podręcznej w warstwie Podstawowa.
  • Można skalować z pamięci podręcznej w warstwie Podstawowa do pamięci podręcznej w warstwie Standardowa, ale nie można jednocześnie zmieniać rozmiaru. Jeśli potrzebujesz innego rozmiaru, możesz wykonać operację skalowania do żądanego rozmiaru w późniejszym czasie.
  • Nie można skalować z pamięci podręcznej w warstwie Podstawowa bezpośrednio do pamięci podręcznej Premium. Najpierw przeprowadź skalowanie z warstwy Podstawowa do Standardowa w ramach jednej operacji skalowania, a następnie przeprowadź skalowanie z warstwy Standardowa do Warstwy Premium w ramach późniejszej operacji.
  • Nie można skalować z pamięci podręcznej Premium do pamięci podręcznej Enterprise lub Enterprise Flash.
  • Nie można skalować z większego rozmiaru do rozmiaru C0 (250 MB).

Jeśli operacja skalowania zakończy się niepowodzeniem, usługa spróbuje przywrócić operację, a pamięć podręczna powróci do oryginalnego rozmiaru.

Jak długo trwa skalowanie?

Czas skalowania zależy od kilku czynników. Poniżej przedstawiono niektóre czynniki, które mogą mieć wpływ na czas skalowania.

  • Ilość danych: replikowanie większych ilości danych trwa dłużej
  • Duże żądania zapisu: większa liczba zapisów oznacza więcej replik danych między węzłami lub fragmentami
  • Duże obciążenie serwera: wyższe obciążenie serwera oznacza, że serwer Redis jest zajęty, a ograniczone cykle procesora CPU są dostępne do ukończenia redystrybucji danych

Skalowanie pamięci podręcznej jest działaniem nietrywialnym i może zająć dużo czasu.

Na podstawie rzeczywistych przykładów czas skalowania pamięci podręcznej z jednym do dwóch fragmentów może wynosić od 1 do 2 godzin, gdy pamięć podręczna nie jest obciążona dużym obciążeniem. Jeśli masz więcej fragmentów, czas skalowania nie zwiększa się w sposób liniowy.

Jak sprawdzić, kiedy skalowanie zostało ukończone?

W witrynie Azure Portal możesz zobaczyć, jak trwa operacja skalowania. Po zakończeniu skalowania stan pamięci podręcznej zmieni się na Uruchomiono.

Czy muszę wprowadzić jakiekolwiek zmiany w mojej aplikacji klienckiej w celu korzystania z klastrowania?

Ważne

W przypadku korzystania z warstw Enterprise lub Enterprise FLash można wybrać tryb klastra systemu operacyjnego lub tryb klastra przedsiębiorstwa. Tryb klastra systemu operacyjnego jest taki sam jak klaster w warstwie Premium i jest zgodny ze specyfikacją klastrowania typu open source. Tryb klastra przedsiębiorstwa może być mniej wydajny, ale korzysta z klastrowania usługi Redis Enterprise, które nie wymaga żadnych zmian w użyciu klienta. Aby uzyskać więcej informacji, zobacz Clustering (Klastrowanie).

Jak klucze są dystrybuowane w klastrze?

Zgodnie z dokumentacją usługi Redis w modelu dystrybucji kluczy: Przestrzeń klucza jest podzielona na 16 384 gniazda. Każdy klucz jest skrótem i przypisany do jednego z tych miejsc, które są dystrybuowane między węzłami klastra. Można skonfigurować, która część klucza jest skrótem, aby upewnić się, że wiele kluczy znajduje się w tym samym fragmentze przy użyciu tagów skrótu.

  • Klucze z tagiem skrótu — jeśli jakakolwiek część klucza jest ujęta w { element i }, tylko ta część klucza jest skrótem na potrzeby określania gniazda skrótu klucza. Na przykład następujące trzy klucze znajdują się w tym samym fragmentzie: {key}1, {key}2i {key}3 ponieważ tylko key część nazwy jest skrótem. Aby uzyskać pełną listę specyfikacji tagów skrótów kluczy, zobacz Tagi skrótów kluczy.
  • Klucze bez tagu skrótu — cała nazwa klucza jest używana do tworzenia skrótów, co powoduje statystycznie równomierny rozkład w obrębie fragmentów pamięci podręcznej.

Aby uzyskać najlepszą wydajność i przepływność, zalecamy równomierne dystrybuowanie kluczy. Jeśli używasz kluczy z tagiem skrótu, aplikacja odpowiada za równomierne dystrybuowanie kluczy.

Aby uzyskać więcej informacji, zobacz Keys distribution model (Model dystrybucji kluczy), Redis Cluster data sharding (Fragmentowanie danych klastra Redis) i Keys hash tags (Tagi skrótu kluczy).

Aby uzyskać przykładowy kod dotyczący pracy z klastrowaniem i lokalizowania kluczy w tym samym fragmentowaniu przy użyciu klienta StackExchange.Redis, zobacz część clustering.cs przykładu Hello World .

Jaki jest największy rozmiar pamięci podręcznej, który mogę utworzyć?

Największy rozmiar pamięci podręcznej, który można mieć, wynosi 4,5 TB. Jest to klastrowana pamięć podręczna F1500 o pojemności 9. Aby uzyskać więcej informacji, zobacz Cennik usługi Azure Cache for Redis.

Czy wszyscy klienci usługi Redis obsługują klastrowanie?

Wiele bibliotek klienckich obsługuje klastrowanie Usługi Redis, ale nie wszystkie. Zapoznaj się z dokumentacją biblioteki, której używasz, aby sprawdzić, czy używasz biblioteki i wersji obsługującej klastrowanie. StackExchange.Redis to jedna biblioteka, która obsługuje klastrowanie w nowszych wersjach. Aby uzyskać więcej informacji na temat innych klientów, zobacz sekcję Odtwarzanie za pomocą klastra w samouczku dotyczącym klastra Redis.

Protokół klastrowania Redis wymaga, aby każdy klient łączył się z poszczególnymi fragmentami bezpośrednio w trybie klastrowania, a także definiuje nowe odpowiedzi o błędach, takie jak MOVED na CROSSSLOTS. Podczas próby użycia biblioteki klienta, która nie obsługuje klastrowania z pamięcią podręczną trybu klastra, wynikiem może być wiele wyjątków przekierowania MOVED lub po prostu przerwanie aplikacji, jeśli wykonujesz żądania wielokluszowe obejmujące wiele kluczy.

Uwaga

Jeśli używasz usługi StackExchange.Redis jako klienta, sprawdź, czy używasz najnowszej wersji rozwiązania StackExchange.Redis 1.0.481 lub nowszego, aby klastrowanie działało poprawnie. Aby uzyskać więcej informacji na temat wszelkich problemów z wyjątkami przenoszenia, zobacz Przenoszenie wyjątków.

Jak mogę nawiązać połączenie z moją pamięcią podręczną po włączeniu klastrowania?

Możesz nawiązać połączenie z pamięcią podręczną przy użyciu tych samych punktów końcowych, portów i kluczy, których używasz podczas nawiązywania połączenia z pamięcią podręczną, która nie ma włączonego klastrowania. Usługa Redis zarządza klastrowaniem na zapleczu, aby nie trzeba było zarządzać nim z poziomu klienta.

Czy mogę połączyć się bezpośrednio z poszczególnymi fragmentami mojej pamięci podręcznej?

Protokół klastrowania wymaga, aby klient nawiązał poprawne połączenia fragmentów, dlatego klient powinien wykonywać połączenia udostępnione. Z tego względu każdy fragment składa się z pary podstawowej/repliki pamięci podręcznej, nazywanej zbiorczo wystąpieniem pamięci podręcznej. Możesz nawiązać połączenie z tymi wystąpieniami pamięci podręcznej przy użyciu narzędzia Redis-CLI w niestabilnej gałęzi repozytorium Redis w usłudze GitHub. Ta wersja implementuje podstawową obsługę po uruchomieniu przełącznika -c . Aby uzyskać więcej informacji, zobacz Odtwarzanie z klastrem w https://redis.io samouczku dotyczącym klastra Redis.

Należy użyć przełącznika -p , aby określić prawidłowy port do nawiązania połączenia. Użyj polecenia WĘZŁY KLASTRA, aby określić dokładne porty używane dla węzłów podstawowych i replik. Używane są następujące zakresy portów:

  • W przypadku pamięci podręcznych w warstwie Premium innych niż TLS porty są dostępne w 130XX zakresie
  • W przypadku pamięci podręcznych w warstwie Premium z obsługą 150XX protokołu TLS porty są dostępne w zakresie
  • W przypadku pamięci podręcznych Flash przedsiębiorstwa i przedsiębiorstwa korzystających z klastrowania systemu operacyjnego początkowe połączenie odbywa się przez port 10000. Nawiązywanie połączenia z poszczególnymi węzłami można wykonać przy użyciu portów w zakresie 85XX. Porty 85xx zmienią się w czasie i nie powinny być zakodowane w aplikacji.

Czy mogę skonfigurować klastrowanie dla wcześniej utworzonej pamięci podręcznej?

Tak. Najpierw upewnij się, że pamięć podręczna znajduje się w warstwie Premium, skalując ją w górę. Następnie zobaczysz opcje konfiguracji klastra, w tym opcję włączenia klastra. Zmień rozmiar klastra po utworzeniu pamięci podręcznej lub po włączeniu klastrowania po raz pierwszy.

Ważne

Nie można cofnąć włączania klastrowania. Pamięć podręczna z włączonym klastrowaniem i tylko jeden fragment zachowuje się inaczej niż pamięć podręczna o tym samym rozmiarze bez klastrowania.

Wszystkie pamięci podręczne w warstwie Flash Enterprise i Enterprise są zawsze klastrowane.

Czy mogę skonfigurować klastrowanie dla podstawowej lub standardowej pamięci podręcznej?

Klastrowanie jest dostępne tylko dla pamięci podręcznych Flash w warstwie Premium, Enterprise i Enterprise.

Czy mogę używać klastrowania z dostawcami usługi Redis ASP.NET stan sesji i buforowanie danych wyjściowych?

  • Dostawca usługi Redis Output Cache — brak wymaganych zmian.
  • Dostawca stanu sesji usługi Redis — aby korzystać z klastrowania, należy użyć klasy RedisSessionStateProvider 2.0.1 lub nowszej lub jest zgłaszany wyjątek, co jest zmianą powodującą niezgodność. Aby uzyskać więcej informacji, zobacz Szczegóły zmiany powodującej niezgodność w wersji 2.0.0.

Otrzymuję wyjątki MOVE w przypadku korzystania z usługi StackExchange.Redis i klastrowania, co należy zrobić?

Jeśli używasz usługi StackExchange.Redis i otrzymujesz MOVE wyjątki podczas korzystania z klastrowania, upewnij się, że używasz rozwiązania StackExchange.Redis 1.1.603 lub nowszego. Aby uzyskać instrukcje dotyczące konfigurowania aplikacji .NET do korzystania z usługi StackExchange.Redis, zobacz Konfigurowanie klientów pamięci podręcznej.

Jaka jest różnica między klastrowaniem systemu operacyjnego i klastrowaniem przedsiębiorstwa w pamięciach podręcznych warstwy przedsiębiorstwa?

Tryb klastra systemu operacyjnego jest taki sam jak klaster w warstwie Premium i jest zgodny ze specyfikacją klastrowania typu open source. Tryb klastra przedsiębiorstwa może być mniej wydajny, ale używa klastrowania usługi Redis Enterprise, który nie wymaga żadnych zmian w użyciu klienta. Aby uzyskać więcej informacji, zobacz Clustering (Klastrowanie).

Ile fragmentów używa pamięci podręcznych w warstwie Enterprise?

W przeciwieństwie do pamięci podręcznych w warstwie Podstawowa, Standardowa i Premium, pamięci podręczne Flash Enterprise i Enterprise mogą korzystać z wielu fragmentów w jednym węźle. Aby uzyskać więcej informacji, zobacz Konfiguracja fragmentowania.

Następne kroki