REDISRedis to baza danych, która jest używana do przechowywania danych w pamięci operacyjnej komputera. Jest to rozwiązanie szybkie, wydajne i elastyczne, które umożliwia przechowywanie danych w formacie klucz-wartość. Jakie są główne zastosowania Redis? Redis jest często używany w następujących scenariuszach: Pamięć podręczna (cache): Przechowywanie często używanych danych w pamięci, co przyspiesza dostęp do nich. Sesje użytkowników: Zarządzanie sesjami w aplikacjach internetowych, co umożliwia szybkie logowanie i przechowywanie stanu użytkownika. Kolejkowanie...Czym jest Redis? w WordPressWordPress to najczęściej wybierany CMS na świecie. W oparciu o niego powstała niemal połowa istniejących stron internetowych. WordPress jest doceniany przez użytkowników ze względu na prostotę, intuicyjność i łatwość zarządzania. Ze względu na charakter open source, WordPress może być rozwijany i udoskonalany na potrzeby konkretnych, indywidualnych projektów. Jak zacząć korzystać z WordPressa? Aby rozpocząć przygodę z WordPressem, najpierw potrzebujesz hostingu dla WordPress. Hosting zapewnia miejsce na serwerze, gdzie będą przechowywane wszystkie pliki...Czym jest WordPress? – o to coraz częściej pytacie w kierowanych do nas zgłoszeniach, odkąd uruchomiliśmy specjalny hosting dla WordPress. Jakiś czas temu, szukając różnych sposobów na przyspieszenie strony na WordPressie, na portalu wordpress.tv natknęłam się na video „Grokking The WordPress Object Cache”. Temat, choć rzadko poruszany na blogach i forach o WordPressie, jest bardzo ciekawy. Nawet ogólna wiedza na ten temat może nam pomóc, jeśli próbujemy zoptymalizować naszą stronę.

Redis w WordPress – o co chodzi z object cache?

Object cache w WordPressie zaimplementowany jest za pomocą klasy WP Object Cache. Polega na cache’owaniu wyników zapytań SQLSQL (Structured Query Language) to język programowania używany do zarządzania i manipulowania bazami danych. Jest to jeden z najważniejszych i najczęściej używanych języków w informatyce, zwłaszcza w kontekście baz danych relacyjnych. SQL umożliwia tworzenie, modyfikowanie oraz usuwanie baz danych, a także wykonywanie zapytań do tych baz w celu pobierania i modyfikowania danych. Dlaczego warto używać SQL? Łatwość użycia: SQL jest językiem deklaratywnym, co oznacza, że użytkownik opisuje, co chce osiągnąć, a nie...Czym jest SQL? do bazy danych. Eliminuje to konieczność częstego łączenia się z bazą i pozwala na szybszy dostęp do danych.

Bardzo wcześnie w kodzie WordPressa tworzony jest obiekt tej klasy. Następnie są do niego wstawiane różne dane, które podczas ładowania WordPressa, pobierane są z bazy danych.

Są to m.in.:

  • wszystkie opcje z tabeli wp_options, które mają ustawiony autoload na “true”
  • dane zalogowanego użytkownika wraz z metadanymi
  • wyniki WP Query – wpisy, strony, własne typy wpisów wraz z ich metadanymi i taksonomiami
  • informacje o aktywnym motywie
  • transienty

Dzięki zapisaniu tych danych w pamięci podręcznej zyskujemy do nich znacznie szybszy dostęp i nie musimy wykonywać wielokrotnych zapytań do bazy danych. Takie zapytania pojawiają się, kiedy chcemy np. wyświetlać dynamiczne elementy w różnych miejscach naszego motywu.

Mechanizm Object Cache jest całkiem sprytnie zaimplementowany w niektórych elementach WordPressa. Ciekawym przykładem są np. własne pola (custom fields).

własne pola w WordPressie

Gdy dodajemy własne pola do wpisu lub strony, zapisane w nich metadane są później automatycznie, wraz z wpisem, pobierane z bazy danych (za pomocą WP QUERY).

Następnie, gdy wyświetlamy metadane za pomocą np. funkcji get_post_meta(), to funkcja ta, zanim wykona zapytanie do bazy, stara się najpierw pobrać dane z Object Cache. Dzięki temu unikamy wielokrotnego odpytywania bazy danych.

Na podobnej zasadzie działają też inne natywne funkcje w WordPressie np. get_option(), gdy chcemy pobrać daną opcję. Funkcja ta też najpierw sprawdza czy dana opcja istnieje w Object Cache. Następnie, kiedy tej opcji tam nie ma, zostaje wysłane zapytanie do bazy danych.

Redis w WordPress: Object Cache nie jest trwały

Największym problemem z zaimplementowanego w WordPressie Object Cache jest to, że nie jest on trwały (jest tzw. non-persistent). Oznacza to, że obiekt Object Cache jest tworzony osobno dla każdego użytkownika. Dzieje się to przy każdym załadowaniu strony. Serwer niszczy go przy każdym opuszczeniu strony przez użytkownika.

Gdy użytkownik przechodzi na kolejne podstrony, obiekt ten jest ciągle tworzony, wypełniany danymi i niszczony. A przy każdym przeładowaniu strony ponownie trzeba wykonać zapytania do bazy danych. Często są to takie same zapytania, wysyłane wielokrotnie do bazy, podczas jednej sesji użytkownika.

Jakie mamy możliwości jeśli chcielibyśmy przechować dane w sposób trwały. Redis w WordPress pomoże.

Transients API

WordPress natywnie oferuje nam mechanizm trwalszego przechowywania danych za pomocą Transients API. Jest to po prostu możliwość tymczasowego przechowania danych, w postaci osobnego rekordu w tabeli wp_options().

Transienty często wykorzystuje się do przechowywania np. wyników kosztownego zapytania do bazy czy danych pobranych z zewnętrznego źródła (np. poprzez zewnętrzne API).

Dzięki temu, zamiast wysyłać do bazy skomplikowane zapytanie za każdym razem kiedy ktoś wejdzie na stronę, możemy na określony czas przechować wynik tego zapytania w transiencie.

Pozwala to znacznie skrócić czas dostępu do danych. Zamiast wykonać skomplikowane i długotrwałe zapytanie do bazy, uzyskujemy szybsze zapytanie, do tabeli wp_options.

Warto korzystać z Transients APIAPI (Application Programming Interface) to zestaw reguł i narzędzi umożliwiających komunikację między różnymi aplikacjami. API to interfejs, który pozwala jednemu oprogramowaniu na korzystanie z funkcji innego oprogramowania, bez konieczności bezpośredniego dostępu do jego kodu źródłowego. API jest nieodzownym elementem nowoczesnych aplikacji, umożliwiając integrację różnych usług i systemów. Gdzie i kiedy można używać API? API jest szeroko stosowane w tworzeniu stron internetowych, aplikacji mobilnych oraz w integracji systemów IT. Na przykład,...Czym jest API?, szczególnie, że po podłączeniu WordPressa do Redisa lub MemcachedMemcached jest to otwarte oprogramowanie typu caching, które jest wykorzystywane do przechowywania danych w pamięci podręcznej w celu przyspieszenia dostępu do nich. Jest to rozwiązanie pamięci podręcznej, które jest szeroko stosowane w aplikacjach internetowych do przechowywania często używanych danych w pamięci operacyjnej, co pozwala na szybkie dostarczanie tych danych bez konieczności odwoływania się do oryginalnego źródła danych. Zalety korzystania z Memcached Przyspieszenie czasu ładowania stron – dostęp do danych z...Czym jest Memcached?, przejmą one przechowywanie danych z transientów.

Redis vs Memcached

Redis i Memcached są to mechanizmy przechowywania danych w pamięci RAM. Dane zapisuje się w formie klucz -> wartość. Redis jest rozwiązaniem nowszym i bardziej bezpiecznym. Ma lepsze mechanizmy autoryzacyjne i dlatego właśnie polecam Ci przede wszystkim Redisa.

Po podłączeniu WordPressa pod Redis, przejmuje on przechowywanie danych z obiektu klasy WP Object Cache. Od tego momentu Object Cache staje się trwały (persistent).

Gdy pierwszy użytkownik załaduje stronę, wykonają się zapytania do bazy i serwer zapisze wynikowe dane w Redisie. Dla kolejnych użytkowników serwer dane pobierze bezpośrednio z Redisa i nie będzie już konieczności łączenia się bazą danych. Czyli teraz dane będą nam się pobierać z pamięci podręcznej, a nie z bazy, co jest znacznie, znacznie szybsze.

Co ciekawe, transienty również są przechwytywane przez Redis, także nadal możemy czerpać korzyści z tymczasowego zapisania wyników kosztownych zapytań. Równocześnie możemy zyskać na tym, że teraz transient jest szybko dostępny w pamięci i nie ma już potrzeby wyciągania go z bazy za każdym razem kiedy ktoś ładuje stronę.

W cyberfolks.pl w pakietach hostingowych WordPress – WP Enduser i WP Developer, można w łatwy sposób podłączyć stronę pod Redis, za pomocą wtyczki LiteSpeed Cache. Więcej o tym w artykule 3 kroki do lepszej wydajności na hostingu dla WordPress.

Kiedy uzyskasz największe korzyści z włączenia Redisa w WordPress?

Największy wpływ na przyspieszenie strony po włączeniu Redis w WordPress odczujemy w sytuacjach, gdy na stronie mamy kosztowne zapytania do bazy. Przykładowo gdy wielokrotnie korzystamy w WP Query czy przeszukujemy bazę po danych z tabeli wp_postmeta.

Pamiętaj, że w Redisie nie przechowujemy kopii całej bazy danych, a jedynie wyniki zapytań do bazy, wykonywanych podczas ładowania WordPressa.

Jeśli na stronie mamy wyszukiwarkę, w której użytkownik może zdefiniować własne parametry wyszukiwania, to Redis w WordPress niewiele tu pomoże. Wówczas wyniki wyszukiwania za każdym razem będą inne i ciężko byłoby je cache’ować do ponownego wykorzystania.

Natomiast jeśli np. tworzymy archiwa, które wymagają bardziej złożonych zapytań do bazy, np. po kilku parametrach zapisanych w tabeli wp_postmeta i wyniki tych zapytań nie zmieniają się często, to ma duży sens cache’ować je w Redisie.

Redis w WordPress może też bardzo poprawić prędkość ładowania strony. To użyteczne, kiedy (np. przez źle napisaną wtyczkę), mamy dużo rekordów w tabeli wp_options. Pierwsze zapytanie do bazy w WordPressie skierowane jest właśnie do tej tabeli. Jeśli ma ona dużo rekordów, to jej przeszukanie może trwać długo. Dzięki przechowaniu wyników tego zapytania w Redisie unikamy przeszukiwania tabeli wp_options przy każdym załadowaniu strony.

Redis w WordPress. Jak sprawdzić liczbę zapytań SQL do bazy danych na naszej stronie „przed i po”?

WordPress API udostępnia nam funkcję get_num_queries(), dzięki której możemy wyświetlić liczbę zapytań do bazy danych, wykonanych podczas ładowania strony.

Wstawiam więc na czas testów, w pliku footer.php niniejszą linijkę kodu:

<p>Liczba zapytań do bazy: <?php echo get_num_queries();?></p>

I w przypadku domyślnej instalacji WordPressa, w motywie potomnym Twenty Seventeen, uzyskuję poniższe wyniki:

WordPress & motyw Twentyseventeen

Redis WordPress: Wykres porównawczy liczby zapytań na Twentyseventeen.

W tym przypadku, podłączenie strony pod Redis pozwoliło zmniejszyć liczbę zapytań do bazy danych o ok. 80%.

WooCommerceChcesz dowiedzieć się, jak założyć sklep na WooCommerce? Obejrzyj kurs zamieszczony na naszym kanale YouTube: https://www.youtube.com/watch?v=FoZ97ZAtxXQ&t=7s WooCommerce to oprogramowanie za pomocą którego uruchomisz sklep internetowy. Jest to dedykowana wtyczka dla WordPress umożliwiająca prowadzenie sprzedaży online. Aby rozpocząć swoją przygodę z e-commerce potrzebujesz 3 rzeczy: domeny, hostingu oraz środowiska umożliwiającego uruchomienie internetowego kanału sprzedaży. WooCommerce jest również znane z doskonałej integracji z innymi narzędziami marketingowymi i analitycznymi. Możesz łatwo połączyć swój...Czym jest WooCommerce? & motyw Storefront

Testuję jeszcze jak sprawa wygląda w sklepie internetowym opartym o wtyczkę WooCommerce i jej domyślny motyw Storefront. Wyniki wyglądają jeszcze bardziej obiecująco.

WooCommerce & Storefront

Redis WordPress: Wykres porównawczy liczby zapytań na WooCommerce + Storefront.

W przypadku WooCommerce Redis przechwycił aż 94% zapytań do bazy danych!

Zapytania do bazy możemy też sprawdzić za pomocą wtyczki Query Monitor. Wskaże ona m.in. ile i jakie zapytania SQL wykonano podczas ładowania strony. Uzyskasz także informację, ile trwało wykonanie wszystkich zapytań łącznie i każdego z osobna. Jest to bardzo przydatne gdy chcemy namierzyć bardzo wolne zapytania do bazy.

W sekcji Object Cache wtyczka wykaże, czy na naszym serwerze funkcjonuje Redis lub Memcached. Jeśli zatem otrzymamy tutaj informację, że jedno z nich jest dostępne, to warto skontaktować się ze swoim hostingodawcą aby uzyskać dane do połączenia.

wtyczka query monitor

Redis w WordPress na hostingu cyberfolks.pl

W cyber_Folks w pakietach hostingowych dla WordPress, można w łatwy sposób podłączyć stronę pod Redis, za pomocą wtyczki LiteSpeedLiteSpeed ​​Server (LSWS) to wysokowydajny serwer WWW, który zastępuje popularne serwery Apache lub Nginx. Jest on zaprojektowany tak, aby działać szybciej i bardziej wydajnie niż tradycyjne serwery HTTP, oferując jednocześnie zgodność z protokołami i skryptami stosowanymi w popularnych aplikacjach internetowych. Oto kilka cech LiteSpeed : Wydajność: LiteSpeed ​​jest znacznie szybszy niż tradycyjny serwer Apache dzięki swojej zoptymalizowanej architekturze, co przekłada się na krótsze czasy odpowiedzi i szybsze ładowanie stron internetowych...Czym jest Litespeed? Cache. Przewodnik jak to zrobić znajdziesz w artykule 3 kroki do lepszej wydajności na hostingu dla WordPress.

Zapraszam Cię do skorzystania z 14 dniowego okresu testowego. Podczas niego możesz bez żadnych zobowiązań podłączyć swoją stronę pod Redis i sprawdzić jak to wpłynie na przyspieszenie strony. Jeśli nie wiesz jak przetestować stronę, odezwij się do naszego Biura Obsługi Klienta. Nasi admini pomogą Ci przekopiować i skonfigurować Twoją stronę internetową tak, żeby Redis WordPress pokazał pazury!

Częste pytania o Redis

Redis to mechanizm nowszy, zapewnia lepszą autoryzację użytkownika. Zdecydowanie polecam Redis.

Będą potrzebne: adres serwera redis, port oraz hasło uwierzytelniające. Wszystkie te dane uzyskasz w panelu cyberfolks.pl po kliknięciu opcji Serwer Redis, dostępnej w planach hostingu dla WordPress.

Serwer Redis jest dostępny bez dodatkowych opłat w planach hostingu dla WordPress oraz hostingu dla PrestaShop.

>
Magdalena Paciorek
Ewangelistka WordPress, deweloperka, organizatorka naszych webinarów. Fanka Gutenberga.

20 odpowiedzi do "REDIS w WordPress. Co to jest i jak działa Object Cache w WordPressie?"

  1. Kuba M pisze:

    Tylko zapomnialas napisac, ze mozna podgladac co inni klienci maja w redisie 😀

  2. Magdalena Paciorek pisze:

    Kuba M Aby podejrzeć co inni użytkownicy mają w Redisie trzeba by najpierw wejść w posiadanie ich haseł do Redisa. A każdy użytkownik ma ustawione inne hasło. 😉

  3. a można coś takiego w joomla, by była szybsza?

    1. Artur Pajkert pisze:

      Nie tylko WordPress korzysta z mechanizmów cacheowania obiektowego. Inne systemy, jeśli współpracują z Redisem, także mogą z tego korzystać. Zdaje się, że do Joomla! istnieją także odpowiednie, gotowe wtyczki.

      1. Jarosław pisze:

        Warto sprostować, że Joomla 3 już obsługuje Redis’a – bez dodatkowych wtyczek.

    2. Tomek pisze:

      da się 🙂 w najnowszej joomli są ustawienia cache i tam Redis do wyboru

  4. sz pisze:

    Jak wordpress hosting wypada w porównaniu z histingiem SSD gdzie jest Lite Speed Cache. ?

  5. Magdalena Paciorek pisze:

    Są to dosyć porównywalne konta, w pakiecie Hosting SSD nie jest zainstalowany Redis, a tylko Memcached, no i nie masz dostępu do innych, specyficznych dla WordPressa, dodatków.

  6. Michał pisze:

    Dobra opcja, nie wiedziałem, że to macie. Wykorzystam na pewno.

  7. Magdalena Paciorek pisze:

    Michał zapraszamy 🙂

  8. Łukasz pisze:

    Miałem ostatnio sytuację, że wpadło mi kilka pustych zamówień – woocommerce zwrócił komunikat, że zabrakło pamięci. Nie chciałem by sytuacja się powtórzyła, więc wyłączyłem cache obiektowy.

    Nie wiem czy o tej samej pamięci mowa, ale przy Redis oferujecie 128MB a przy Memcached 512 MB – do czego odnoszą się te wartości, i czy skoro zdarzyło się, że zabrakło u mnie pamięci, powinienem wybrać Memcached bo więcej jej oferuje?

    Jako laik zapytałbym czym różni się Redis od Memcached – Wasz support odpisuje, że są to inne mechanizmy i można ich używać równolegle – niestety wtyczka, którą polecacie do WordPress, pozwala tylko na wybranie jednego rodzaju cachowania obiektowego – można to jakoś obejść?

    1. Grzegorz pisze:

      Osobiście sam dzisiaj doświadczyłem problem z zapełnieniem się pamięci w Redisie (WordPress zwracał komunikat „Krytyczny błąd). Przełączyłem się na Memcached i będę obserwował.

  9. Bardzo interesujące. Wdrożymy u siebie na pewno. LiteSpeed Cache to dobre rozwiązanie. Warto także pamiętać o podbijaniu wersji PHP.

  10. infomiasto.eu pisze:

    Dla mnie to jakaś fantastyka, nawet nie wiedziałem że takie coś jest. Muszę dokładniej wczytać się w ten temat. Wydaje się bardzo przydatne szczególnie jeśli strona nadal tworzy około 60% szybkości i nic więcej przez samą architekturę wordpressa. Dziękuję za te wskazówki.

  11. eVisaExpress pisze:

    Bardzo przydatny artykuł..Szkoda jednak że nie ma porównania jeżeli odnośnie szybkości strony w narzędziu Google speed test.

  12. Bartosz pisze:

    Czy ktoś mógłby się wypowiedzieć na temat Memcached w porównaniu do Redisa? Osobiście korzystam obecnie z Memcached w cyberfolks.pl, a podobno Redit jest wydajniejszy.

    1. Artur Pajkert pisze:

      Raczej chodzi o to, że Redis to nowsza technologia, zapewniająca lepszą funkcjonalność, przykładowo lepsze wsparcie dla danych typu „geospatial”, ma w ogóle możliwość definiowania typów danych, czego nie ma w Redis, klucze w Memcached są znacznie krótsze niż w Redis, Redis może też replikować dane na nośniki trwałe. Redis tak ogólnie jest bardziej funkcjonalny, podczas gdy memcached to rozwiązanie prostsze, starsze. Dla prostych stron prawdopodobnie nie poczujesz szczególnej różnicy w szybkości, choć bywa, że jedno z rozwiązań jest nieco szybsze niż drugie.

  13. Mentor pisze:

    Jak się ma redis do armember w panelu administracyjnym ? mamy około 20 tys użyszkodników i bardzo często zapytania do bazy trwają po 15s. Jak ma się redis do treści płatnych zablokowanych dla użytkowników ? mam opcję tylko dla niezalogowanych czy jeśli włączę dla zalogowanych nie wypłyną treści płatne ?

  14. Krzysztof P pisze:

    Ostatnio otrzymałem informację od suportu pewnej wtyczki taką informację:

    „Redis Cache nie jest tak naprawdę kompatybilny z WooCommerce – ponieważ nie pozwala wykluczyć niektórych stron lub obiektów z pamięci podręcznej. Może więc zakłócać lub zakłócać szereg funkcji oferowanych przez WooCommerce (nie tylko naszą wtyczkę, ale także podstawowy produkt).”

    Czy w takim wypadku jest sens w ogóle używać redisa?

  15. Rafiozoo pisze:

    Czy włączenie Redisa w LS Cache z domyślną wartością 128MB może powodować problem z dodawaniem dużych galerii (ponad 100 miniatur)? W adminie zawiesza się na wyborze rozmiaru miniatury, na froncie brak linku do dużego obrazka.

Dodaj komentarz

Twój adres e-mail nie będzie opublikowany.

Polecane dla Ciebie

Szukasz dalej?

Przeglądaj wg dat
  • Przeglądaj wg dat
  • kwiecień 2025
  • marzec 2025
  • luty 2025
  • styczeń 2025
  • grudzień 2024
  • listopad 2024
  • październik 2024
  • wrzesień 2024
  • sierpień 2024
  • lipiec 2024
  • czerwiec 2024
  • maj 2024
  • kwiecień 2024
  • marzec 2024
  • luty 2024
  • styczeń 2024
  • grudzień 2023
  • listopad 2023
  • październik 2023
  • wrzesień 2023
  • sierpień 2023
  • lipiec 2023
  • czerwiec 2023
  • maj 2023
  • kwiecień 2023
  • marzec 2023
  • luty 2023
  • styczeń 2023
  • grudzień 2022
  • listopad 2022
  • październik 2022
  • wrzesień 2022
  • sierpień 2022
  • lipiec 2022
  • czerwiec 2022
  • maj 2022
  • kwiecień 2022
  • marzec 2022
  • luty 2022
  • styczeń 2022
  • grudzień 2021
  • listopad 2021
  • październik 2021
  • wrzesień 2021
  • sierpień 2021
  • lipiec 2021
  • czerwiec 2021
  • maj 2021
  • kwiecień 2021
  • marzec 2021
  • luty 2021
  • styczeń 2021
  • grudzień 2020
  • listopad 2020
  • październik 2020
  • wrzesień 2020
  • sierpień 2020
  • lipiec 2020
  • czerwiec 2020
  • maj 2020
  • kwiecień 2020
  • marzec 2020
  • luty 2020
  • styczeń 2020
  • grudzień 2019
  • listopad 2019
  • październik 2019
  • wrzesień 2019
  • sierpień 2019
  • lipiec 2019
  • czerwiec 2019
  • maj 2019
  • kwiecień 2019
  • marzec 2019
  • styczeń 2019
  • grudzień 2018
  • listopad 2018
  • październik 2018
  • sierpień 2018
  • lipiec 2018
  • maj 2018
  • kwiecień 2018
  • marzec 2018
  • styczeń 2018
  • grudzień 2017
  • październik 2017
  • czerwiec 2017
  • kwiecień 2017
  • marzec 2017
  • luty 2017
  • styczeń 2017
  • grudzień 2016
  • listopad 2016
  • październik 2016
  • wrzesień 2016
  • sierpień 2016
  • lipiec 2016
  • czerwiec 2016
  • maj 2016
  • kwiecień 2016
  • marzec 2016
  • lipiec 2015
  • maj 2015
  • grudzień 2014
  • sierpień 2014
  • lipiec 2014
  • czerwiec 2014
  • kwiecień 2014

Chat online

Cześć!

Zapraszamy do rozmowy, chętnie odpowiemy na Twoje pytania. Jeśli dotyczą one bezpośrednio posiadanych przez Ciebie usług, zalecamy wcześniejsze zalogowanie się do swojego panelu klienta. Dzięki autoryzacji będziemy mogli zaoferować pomoc w szerszym zakresie.

Zachęcamy też do sprawdzenia naszej sekcji wsparcia na https://cyberfolks.pl/pomoc.

Aktualny stan pracy serwerów:

Autoryzacja: nieautoryzowany - Zaloguj się

W związku z przepisami o ochronie danych osobowych informujemy, kto i na jakich zasadach będzie administrować Twoimi danymi: Polityka prywatności cyber_Folks S.A.