Przejdź do treści
Podobają Ci się nasze treści?
Sięgnij po unikalną wiedzę prosto od developerów i marketingowców. Zapisz się do newslettera.
CAPTCHA
Dziękujemy za zapisanie się do newslettera!
Aby otrzymywać najświeższe, branżowe informacje, potwierdź subskrypcję w mailu, który od nas dostałeś.
PS. Nawet tak ważne wiadomości lubią czasem pomylić folder, dlatego upewnij się, że mail nie trafił do SPAMU
Otwórz swoją skrzynkę e-mail

Redis Cache w Magento 2 - dlaczego warto go zastosować?

Kategoria: 
Data aktualizacji: 
Czas czytania
: 6 min

Właściciele stron internetowych zawsze szukają rozwiązań, które pozwolą ulepszyć funkcjonowanie ich witryn. Dzieje się tak zwłaszcza w przypadku sprzedawców korzystających z Magento 2, którzy często mają do czynienia z dużym ruchem, a więc i licznymi danymi. Jeśli chcesz poprawić wydajność sklepu, warto skorzystać z Redis Cache. Czym jest to rozwiązanie i na czym polega jego działanie? Tego dowiesz się z poniższego artykułu.

Redis Cache w Magento

Redis Cache – co to jest?

Redis to inaczej Remote Dictionary Server. Projekt narodził się wtedy, gdy jego twórca, Salvatore Sanfilippo, próbował poprawić skalowalność swojego włoskiego startupu. W tym celu zaprojektował Redis Cache, czyli solidny open source’owy system cachowania danych, który znajduje zastosowanie w przypadku Magento i wielu innych aplikacji webowych. Pomaga on zwiększyć szybkość działania back-endu i front-endu stron internetowych.

Redis umożliwia osiąganie czasów odpowiedzi krótszych niż jedna milisekunda, co pozwala obsługiwać miliony zapytań w przypadku aplikacji, które przetwarzają dane w czasie rzeczywistym. Właśnie dlatego narzędzie znalazło zastosowanie m.in. w usługach finansowych, służbie zdrowia, internecie rzeczy (IoT), streamingu mediów oraz analityce. A według rankingu DB-Engines jest już od lat najpopularniejszą na świecie bazą danych typu klucz-wartość, wyprzedzając konkurencję od Amazona i Microsoftu z ogromną przewagą.

Jak działa Redis?

Redis Cache przechowuje wszystkie dane w pamięci RAM, podczas gdy większość baz danych – jak i domyślny cache plików w Magento – zapisuje je na dysku HDD lub SSD na serwerze.

Gdy korzystasz ze standardowego cache, przy każdym odwołaniu system musi przeprowadzić całą operację wejścia/wyjścia na żądanych plikach. Wciąż dzieje się to szybciej niż gdyby trzeba było pobrać dane bezpośrednio z bazy – zwłaszcza jeśli cache korzysta z SSD – ale i tak pojawia się opóźnienie przez ograniczoną prędkość odczytu/zapisu dysku.

Redis Cache przechowuje cały zbiór danych w pamięci operacyjnej serwera, do której dostęp jest o rzędy wielkości szybszy niż do jakiegokolwiek dysku. Według benchmarków Amazona (który oferuje dostęp do Redis w ramach AWS), średni czas odpowiedzi dla pojedynczej operacji utrzymuje się na poziomie poniżej jednej milisekundy – trzeba go liczyć w… mikrosekundach!

Redis – największe zalety

Redis w systemie Magento 2 może pomóc Twojemu sklepowi na wiele sposobów. Przeanalizujmy kilka z nich.

  1. Elastyczne struktury danych

    • Strings – dane tekstowe lub binarne o wielkości do 512 MB;
    • Lists – kolekcja tekstowych typów danych (string) w takiej kolejności, w jakiej zostały dodane;
    • Sets – nieuporządkowany zbiór tekstowych danych z możliwością przeprowadzania na nich operacji intersect, union oraz diff;
    • Sorted Sets – Sets uporządkowane według wartości;
    • Hashes – struktura danych do przechowywania listy pól i wartości;
    • Bitmaps – typ danych, który oferuje operacje na poziomie bitów;
    • HyperLogLogs – probabilistyczna struktura danych umożliwiająca oszacowanie unikalnych pozycji w zbiorze danych.
  2. Prostota i łatwa obsługa

    Redis ułatwia pracę z danymi – pozwala zapisywać, pobierać i wykorzystywać je przy mniejszej ilości kodu. Jeśli w aplikacji używasz hashmapy, nie musisz pisać własnego rozwiązania – możesz zastosować wbudowaną strukturę hash w Redisie. Przechowasz w niej dane. Bez gotowych schematów konieczne jest dodanie wielu linii kodu do konwersji formatów. Redis posiada natywne opcje do zarządzania i manipulacji i danymi.

    W przypadku Magento nawet sama konfiguracja Redis jest bardzo prosta, wystarczy dodać fragment kodu w pliku app/etc/env.php:

    'cache' => [
        'frontend' => [
            'default' => [
                'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
                'backend_options' => [
                    'server' => '127.0.0.1',
                    'port' => '6379',
                    'database' => '0'
                ]
            ]
        ]
    ],
    

    Po zapisaniu zmian i wyczyszczeniu domyślnego cache, Magento Redis od razu zacznie przechowywać dane w pamięci operacyjnej. Więcej o konfiguracji możesz przeczytać w oficjalnej dokumentacji od Adobe dla developerów.

  3. Dostępność i skalowalność

    Kolejna zaleta – cała architektura Redis oparta na modelu primary-replica umożliwia tworzenie wielu kopii danych w czasie rzeczywistym, co pozwala nie dość, że równolegle obsługiwać większą liczbę zapytań do bazy, to jeszcze zapewnia odporność na awarie.

    Najważniejsze są tu dwa mechanizmy:

    • Redis Cluster, który pozwala rozdzielać dane pomiędzy wiele węzłów (to tzw. sharding), co umożliwia poziome skalowanie bazy i obsługę o wiele większych ilości danych;
    • Redis Sentinel, który na bieżąco monitoruje wszystkie instancje Redis i informuje o zmianach w topologii bazy. Co więcej, w przypadku awarii głównej instancji automatycznie przełącza się na replikę… dzięki czemu sklep jest dalej dostępny.

    Oprócz standardowej wersji bazy istnieje także Redis Enterprise, który potrafi natychmiastowo skalować się do praktycznie każdych wymagań, wciąż utrzymując przy tym czas reakcji poniżej milisekundy. Oferuje on także zaawansowane mechanizmy bezpieczeństwa, które zapewniają ochronę nawet w przypadku najbardziej zagrażających scenariuszy dotyczących baz danych.

  4. Open Source

    Redis to projekt open source, wokół którego powstała duża i bardzo aktywna społeczność. Dzięki temu łatwo znajdziesz rozwiązania napotykanych problemów – istnieje duża szansa, że ktoś już wcześniej zmagał się z podobnym wyzwaniem. Oprócz tego narzędzie można stosować w przypadku praktycznie każdej technologii.

Redis – najczęstsze zastosowania

Redis można wykorzystać w licznych sytuacjach. Oto najczęstsze z nich:

Praktyczne użycie Redis
  • pamięć podręczna całej strony (full page caching) – przede wszystkim Redis może bez problemu przechowywać kompletne, wyrenderowane strony HTML. Czas ładowania strony dla powracających klientów to wtedy ułamki sekund, plus nie ma konieczności generowania treści po stronie Magento;
  • przechowywanie sesji – domyślnie Magento zapisuje sesje użytkowników w plikach lub bazie danych, co przy dużym ruchu – choćby podczas wyprzedaży – powoduje wąskie gardła. Redis może przechowywać sesje w RAM, zapewniając natychmiastowy odczyt (i zapis) oraz lepszą synchronizację danych w środowiskach multi-mode;
  • cache konfiguracji i zależności – Magento 2 dosyć intensywnie korzysta z plików konfiguracyjnych i kontenerów zależności. Z pomocą Redis można przechowywać je w RAM tak samo, jak inne pliki, co skróci czas inicjalizacji Magento i usprawni pracę w panelu admina;
  • analityka w czasie rzeczywistym i personalizacja – cache’ować można również historię sesji użytkowników albo dane o ostatnio oglądanych produktach; wtedy, jeśli masz w sklepie moduły personalizacji ofert albo rekomendacji produktowych, będą one miały natychmiastowy dostęp do niezbędnych im informacji (i znacznie zmniejszy się liczba zapytań do bazy);
  • obsługa kolejki wiadomości (message queue framework) – Magento 2 wykorzystuje system kolejek (domyślnie RabbitMQ) do obsługi zadań asynchronicznych: aktualizacji cen, wysyłki maili do klientów czy synchronizacji danych z systemami ERP. Redis może służyć jako alternatywny, bardzo wydajny backend dla tych zadań, przetwarzając je w tle, bez obciążania głównego wątku;
  • cache pozostałych typów danych – oprócz full page caching czy plików konfiguracji, Magento obsługuje także inne typy cache, które domyślnie korzystają z plików serwera. Cache struktury bloków (Layout), wyrenderowanych bloków HTML (Block HTML) albo atrybutów EAV również można bez problemu przenieść do Redis.

Redis w Magento 2 – podsumowanie

Jeśli prowadzisz sklep na Magento 2 i chcesz, aby działał szybciej, wdrożenie Redis będzie jedną z najlepszych decyzji, jakie możesz podjąć.

Dzięki przechowywaniu danych w pamięci RAM i elastycznym narzędziom skalowania, jak Cluster i Sentinel, Redis skróci czas ładowania stron do minimum. Zachowa przy tym bardzo wysoką stabilność, nawet przy dużych obciążeniach. To nie przypadek, że z tej bazy korzysta obecnie ponad 177 tysięcy stron (wg BuiltWith), w tym Amazon, Airbnb, a nawet OpenAI z Chatem GPT.

Skontaktuj się z naszymi ekspertami, aby wdrożyć Redis w Twoim środowisku Magento i zobacz, jak szybko może działać Twój sklep nawet w peaku ruchu.

Zapisz się do darmowego newslettera

Zdobywaj wartościową wiedzę z obszaru technologii i marketingu

CAPTCHA
Oceń wpis
4.6
Ocena: 4.7 Liczba głosów: 14
Mamy więcej darmowych treści. Nie rezygnuj z nich!
Technologie, SEO, marketing - newsletter z poradami, które od razu możesz wdrożyć! Prosto na Twoją skrzynkę. Za darmo i bez spam
CAPTCHA