Podejmowanie decyzji dotyczącej korzystania z usługi Azure Cache for Redis

Ukończone

Witryna sportowa zawiera bazę danych, która zwraca dane przez wykonywanie zapytań. Jednak wydajność spada, kiedy występują duże obciążenia, szczególnie podczas dużych wydarzeń sportowych. W środowiskach hostowanych zwiększone użycie zasobów przekłada się na wyższe koszty. Buforowanie dane zapewniają, że witryna internetowa działa dobrze i działa ekonomicznie.

Czym jest buforowanie?

Buforowanie to czynność przechowywania często używanych danych w pamięci bardzo blisko aplikacji, która korzysta z danych. Buforowanie umożliwia zwiększenie wydajności i zmniejszenie obciążenia serwerów. Za pomocą serwera Redis w pamięci tworzony jest bufor zapewniający minimalne opóźnienie i potencjalne zwiększenie wydajności.

Co to jest pamięć podręczna Redis?

Pamięć podręczna Redis (REmote DIctionary Server) to magazyn typu open source przechowujący w pamięci pary klucz-wartość. Pamięć podręczna Redis jest popularna, ponieważ jest szybka i umożliwia obsługę standardowych typów danych, takich jak ciągi, skróty oraz zestawy. Jest również uważany za przyjazny dla deweloperów, ponieważ obsługuje wiele języków, takich jak Python, C, C++, C#, Java i JavaScript, między innymi.

Co to jest usługa Azure Cache for Redis?

Usługa Azure Cache for Redis jest oparta na popularnej pamięci podręcznej Redis Cache typu „open source”. Zapewnia ona dostęp do bezpiecznej, dedykowanej pamięci podręcznej Redis zarządzanej przez firmę Microsoft. Pamięć podręczna utworzona przy użyciu usługi Azure Cache for Redis jest dostępna z poziomu dowolnej aplikacji w ramach platformy Azure. Usługa Azure Cache for Redis jest zwykle używana w celu poprawy wydajności systemów, które są silnie uzależnione od magazynów danych na zapleczu.

Buforowane dane, zamiast być ładowane z dysku przez bazę danych, znajdują się w pamięci na serwerze platformy Azure z uruchomioną pamięcią podręczną Redis. Ta pamięć podręczna jest również wysoce skalowalna. Jej rozmiar i warstwę cenową można zmienić w dowolnym momencie.

Jakie typy danych mogą być przechowywane w pamięci podręcznej?

Usługa Redis obsługuje różne typy danych, wszystkie zorientowane na bezpieczne ciągi binarne . Możesz użyć dowolnej sekwencji binarnej dla wartości, z ciągu takiego jak "i-love-rocky-road" do zawartości pliku obrazu. Pusty ciąg jest również prawidłową wartością.

  • Typowe bezpieczne ciągi binarne
  • Lista ciągów
  • Nieuporządkowane zestawy ciągów
  • Skróty
  • Posortowane zestawy ciągów
  • Mapy ciągów

Każda wartość danych jest skojarzona z kluczem, który może służyć do wyszukiwania wartości z pamięci podręcznej. Usługa Redis działa najlepiej z mniejszymi wartościami (100 kB lub mniej), dlatego rozważ posiekanie większych danych do wielu kluczy. Przechowywanie większych wartości (do 500 MB) jest możliwe, ale zwiększa opóźnienia sieci i może powodować problemy z pamięcią podręczną i problemy związane z brakiem pamięci, jeśli nie skonfigurowano wygaszania starych wartości w pamięci podręcznej.

Czym jest klucz pamięci podręcznej Redis?

Klucze redis są również ciągami bezpiecznymi binarnie. Oto garść wskazówek dotyczących wybierania kluczy:

  • Unikaj długich kluczy: zajmują one więcej pamięci i wymagają dłuższych czasów wyszukiwania, ponieważ muszą być porównywane bajt po bajtach. Zamiast binarnego obiektu blob jako klucza użyj wygenerowanego unikatowego skrótu. Maksymalny rozmiar klucza wynosi 512 MB, ale nigdy nie należy używać takiego klucza.
  • Użyj kluczy, które mogą identyfikować dane: na przykład sport:football;date:2008-02-02 byłoby lepszym kluczem niż fb:8-2-2. Pierwszy jest bardziej czytelny, a dodatkowy rozmiar jest niewielki. Zachowaj równowagę między rozmiarem a czytelnością.
  • Użyj konwencji: Dobra konwencja to object:ID, jak w pliku sport:football.

W jaki sposób dane są przechowywane w pamięci podręcznej Redis?

Dane w pamięci podręcznej Redis są przechowywane w węzłach i klastrach.

Węzły to obszar w pamięci podręcznej Redis, w którym dane są przechowywane.

Klastry to zestawy trzech lub większej liczby węzłów, w których jest podzielony zestaw danych. Klastry są przydatne, ponieważ operacje są kontynuowane, jeśli węzeł ulegnie awarii lub nie będzie mógł komunikować się z resztą klastra.

Jaka jest architektura pamięci podręcznej Redis?

Architektura pamięci podręcznej Redis to sposób, w jaki dane są rozmieszczone w pamięci podręcznej. Istnieją trzy główne metody rozmieszczania danych:

  1. Jeden węzeł
  2. Wiele węzłów
  3. Klastry

Architektura pamięci podręcznej Redis jest na platformie Azure podzielona zgodnie z warstwami:

Podstawowa pamięć podręczna

Podstawowa pamięć podręczna zapewnia jeden węzeł pamięci podręcznej Redis. Kompletny zestaw danych jest przechowywany w jednym węźle. Ta warstwa jest idealna w przypadku obciążeń programistycznych, testowych i niekrytycznych.

Standardowa pamięć podręczna

Standardowa pamięć podręczna tworzy architekturę złożoną z wielu węzłów. Usługa Redis replikuje pamięć podręczną w dwuwęzłowej konfiguracji podstawowej/dodatkowej. Platforma Azure zarządza replikacją między dwoma węzłami i tworzy pamięć podręczną gotową do produkcji z replikacją podstawową/pomocniczą.

Warstwa Premium

Warstwa Premium obejmuje funkcje warstwy Standardowa, ale dodaje możliwość utrwalania danych, tworzenia migawek i tworzenia kopii zapasowych danych. Dzięki tej warstwie można utworzyć klaster Redis, który współudzieli dane między wieloma węzłami usługi Redis, aby zwiększyć ilość dostępnej pamięci. Warstwa Premium obsługuje również usługę Azure Virtual Network zapewniającą pełną kontrolę nad połączeniami, podsieciami, adresowaniem IP i izolacją sieci. Ta warstwa obejmuje również replikację geograficzną, dzięki czemu masz pewność, że Twoje dane znajdują się blisko aplikacji, która z nich korzysta.

Podsumowanie

Baza danych doskonale nadaje się do przechowywania dużych ilości danych, ale podczas wyszukiwania danych występuje pewne opóźnienie. Najpierw wysyłane jest zapytanie. Serwer interpretuje je, wyszukuje dane i dopiero na końcu dane są zwracane. Serwery mają również limity możliwości obsługi żądań. Jeśli zostanie wykonanych zbyt wiele żądań, pobieranie danych może spowolnić. Buforowanie przechowuje często żądane dane w pamięci, które mogą być zwracane szybciej niż wykonywanie zapytań względem bazy danych, co powinno zmniejszyć opóźnienie i zwiększyć wydajność. Usługa Azure Cache for Redis zapewnia dostęp do bezpiecznej, dedykowanej i skalowalnej pamięci podręcznej Redis, hostowanej na platformie Azure i zarządzanej przez firmę Microsoft.