Przyspieszamy WordPress. Co to jest REDIS i jak go włączyć?

Redis jest jednym z dodatkowych sposobów na przyspieszenie naszego WordPressa poprzez wykorzystanie obiektowego cache. Co to jest Redis, czym jest obiektowy cache, w jaki sposób można go użyć w WordPressie i jak go skonfigurować na hostingu? Istotny jest też fakt, że Redis przyspieszy nie tylko naszą stronę internetową, ale także panel administracyjny.

Trochę teorii. Jak działa Redis?

Redis jest mechanizmem do magazynowania danych, który działa po stronie serwera i pozwala przechowywać dane w modelu NoSQL. W tym wypadku wszystkie dane ulokowane są w pamięci operacyjnej serwera, dzięki czemu ich odczyt jest niesamowicie szybki, a dostęp błyskawiczny. W zależności od aplikacji, Redis może zostać wykorzystany jako baza danych, pamięć podręczna, system przechowywania sesji lub tzw. broker wiadomości.

Czy Redis jest dostępny na każdym serwerze?

Dostępność Redisa na hostingu współdzielonym jest uzależniona od operatora, ale obecnie na większości hostingów jest już ogólnodostępny, czasem nawet w najtańszej ofercie.

Konfiguracja jest uzależniona od chęci i potrzeb użytkownika. Redis może zostać zainstalowany samodzielnie przez Klienta lub przez naszych Administratorów po kontakcie z Biurem Obsługi Klienta.

Jak można wykorzystać Redis w WordPressie?

W przypadku WordPressa interesuje nas wykorzystanie Redisa jako dodatkowego systemu pamięci podręcznej. Wykorzystywana w tym celu jest tzw. obiektowa pamięć podręczna (object cache), która przechowuje w cache’u wyniki zapytań SQL.

Użycie tego typu pamięci podręcznej znacząco zmniejsza obciążenie samej bazy, gdyż dramatycznie zmniejsza się ilość nowych zapytań do bazy MySQL. Zamiast tego gotowe wyniki są pobierane z podręcznej pamięci obiektowej. W efekcie przyspiesza to zwracanie wyników i wyświetlanie strony WWW. Jest to szczególnie istotne na stronach lub sklepach internetowych, w których użytkownicy wykonują wiele czynności generujących dużą ilość zapytań do bazy danych w tle.

Jak działa cache obiektowy w WordPressie?

Zanim przejdziemy do samego Redisa, warto wiedzieć, że w WordPressie istnieje już obiektowa pamięć podręczna. Wykorzystywana jest do niej klasa WP Object Cache, która oszczędza naszą bazę danych przed nadmierną ilością zapytań poprzez cache’owanie określonych zapytań SQL (m.in. wyników z WP Query, czyli tych odpowiedzialnych za wyświetlanie wpisów, stron, kategorii, produktów i tak dalej).

WP Object Cache ma jednak jeden minus. Ma on charakter pamięci nietrwałej (non-persistent), czyli dane przechowywane w pamięci znajdują się tam tylko na czas trwania danego żądania. Nie są one dostępne podczas przechodzenia pomiędzy kolejnymi załadowaniami strony – zamiast tego każdorazowo tworzą się na nowo.

W WordPressie 2.5 i starszych istniała możliwość przełączenia wbudowanego WP Object Cache do trybu pamięci trwałej (persistent). Wystarczyło dokonać jednej zmiany w pliku wp-config.php. We współczesnych wersjach WordPressa ta opcja jest już jednak niedostępna – została wycofana na rzecz zewnętrznych rozwiązań do utrwalania pamięci obiektowej. Jednym z nich jest właśnie Redis.

Redis – sposób na utrwalenie WP Object Cache

Użycie Redisa w WordPressie do obsługi pamięci podręcznej oznacza użycie go jako mechanizmu do utrwalania istniejącej już pamięci obiektowej. W Redisie będą cache’owane wszystkie te zapytania, które są w WordPressie obsługiwane przez klasę WP Object Cache. Dzięki Redisowi będą jednak przechowywane w sposób trwały (persistent).

Schemat działania jest dość prosty i filozofia mechanizmu nie różni się od tego, jak działają inne typy pamięci podręcznej. Gdy na stronę wejdzie pierwszy użytkownik i wykona akcję, która spowoduje zapytanie do bazy MySQL, wynik tego zapytania zostanie zachowany w magazynie Redisa. Od tej pory, gdy inni użytkownicy strony wykonają to samo zapytanie, WordPress nie wykona dla nich kolejnych zapytań do bazy. Zamiast tego zaserwuje im istniejący wynik tego zapytania z magazynu Redisa, co jest o wiele szybsze.

Jak uruchomić funkcję REDIS na naszym hostingu

Tyle teorii a teraz praktyka. Uruchomienie funkcji REDIS w naszym WordPressie sprowadza się do trzech prostych kroków. Po pierwsze. Musimy zalogować się do naszego panelu administracyjnego na hostingu lub Direct Admina – różnie się to nazywa w zależności od firmy hostingowej. W zakładce Redis Management tworzymy nową instancję. Wygenerowane dane będą potrzebne w kolejnym kroku.

Jak uruchomić REDIS na hostingu

Jak włączyć Redis w WordPressie? Instalacja wtyczki

Krok drugi. Aby włączyć Redis w WordPressie, zainstaluj i aktywuj wtyczkę Redis Object Cache dostępną w repozytorium.

Wordpress instalacja pluginu REDIS

Wprowadź dodatkowe wartości w pliku wp-config.php

Krok trzeci. Aby można było nawiązać połączenie z Redisem, należy wprowadzić dodatkowe wartości w pliku wp-config.php, które zostaną wykorzystane przez wtyczkę Redis Object Cache. Dlatego wygenerowane wcześniej dane wstawiamy w pliku wp-config.php.

Zaloguj się na swój serwer FTP i otwórz plik wp-config.php. Tuż pod znacznikiem otwierającym kod PHP, dopisz poniższe linie, odpowiednio uzupełniając je swoimi danymi. Poniżej podaję dwa przykłady z hostingu SEOHOST i LH ponieważ nieco różnią się treścią kodu:

/** REDIS w SEOHOST **/
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 7269 );
define( 'WP_CACHE_KEY_SALT','domena' );
define( 'WP_REDIS_PASSWORD', 'password' );
/** REDIS w LH **/
define( 'WP_CACHE_KEY_SALT', 'domena' );
define( 'WP_REDIS_SCHEME', 'unix' );
define( 'WP_REDIS_PATH', '/usr/local/redis/sockets/serwerXXXXXXXXX.sock' );

Co to jest WP_CACHE_KEY_SALT. To unikatowy identyfikator twojej strony, dzięki któremu nie dojdzie do konfliktu między innymi obiektami w magazynie Redisa. Możemy tu wpisać np. nazwę naszej domeny, jeśli mamy ich kilka to będzie wiadomo, że ta instancja Redis jest przypisana do tej konkretnej domeny.

WP_REDIS_PATH to ścieżka udostępniona przez hostingodawcę, w której należy wstawić identyfikator swojego serwera. Przykładowo, jeśli twój serwer ma adres serwer123456789.lh.pl, to zamiast serwerXXXXXXXXX należy wstawić serwer123456789.

Zapisz zmiany w pliku wp-config.php i wyślij go z powrotem na serwer, nadpisując oryginalny.

Uruchamiamy Redis Object Cache w naszym WordPressie

Wróć do panelu administracyjnego WordPressa, wejdź do zakładki Ustawienia > Redis i odpal rakietę. Kliknij przycisk Enable Object Cache. Jeśli wszystko zostało prawidłowo skonfigurowane, Redis Object Cache nawiąże połączenie i poinformuje Cię o prawidłowej konfiguracji za pomocą statusu Connected.

Uruchamianie Redis

Nic więcej nie musisz już konfigurować – od tej pory zapytania SQL są cache’owane w magazynie Redisa.W kokpicie WordPressa można sobie włączyć widget, na którym będzie widać jak pracuje nasz Redis i ile danych nasza strona wysłałaby do bazy SQL gdyby go nie było.

Redis w kokpicie WordPress

Jak uruchomić Redis w LiteSpeed Cache?

Jeśli nasz serwer postawiony jest na LiteSpeed, to w tym przypadku najlepiej używać wtyczkę cache’ującą LiteSpeed Cache. Rodzaj serwera można sprawdzić wchodząc w zakładkę Narzędzia > Stan witryny > Informacje > Serwer – w drugiej pozycji Serwer webowy jest informacja jakiego rodzaju jest to serwer. W moim przypadku to LiteSpeed. Teraz bezpośrednio we wtyczce LiteSpeed Cache w zakładce Pamięć podręczna > (6) Object możemy włączyć pamięć podręczną obiektów. Wybieramy metodę cache’owania Redis i wpisujemy wcześniej wygenerowane w hostingu dane instancji. Gdy stan wyświetli się na zielono, cache działa poprawnie.

W tym przypadku nie jest nam potrzebna dodatkowa wtyczka do uruchomienia funkcji Redis, ale też w kokpicie nie będziemy mieli podglądu jej pracę.

Redis w LiteSpeed Cache

Jeśli operacja uruchomienia funkcji Redis nie udała się, daj znać w komentarzu to chętnie pomogę.

Podziel się tym odkryciem​

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *