Redis w WordPressie. Czym jest i jak go włączyć?

Redis jest jednym z dodatkowych sposobów na przyspieszenie WordPressa poprzez wykorzystanie obiektowego cache. Co to jest Redis, czym jest obiektowy cache, w jaki sposób dokładnie można go użyć w WordPressie i jak go skonfigurować na hostingu w LH.pl?

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 – w LH.pl Redis jest dostępny w pakietach hostingowych Mango i Apple.

W przypadku Cloud Hostingu konfiguracja jest uzależniona od woli 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 mogę 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 włączyć Redis w WordPressie? Instrukcja na przykładzie hostingu w LH.pl

Aby włączyć Redis w WordPressie, zainstaluj wtyczkę Redis Object Cache oraz wprowadź odpowiednie zmiany w pliku wp-config.php

Pamiętaj, że procedura ta może różnić się w zależności od hostingodawcy.

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

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.

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:

define( 'WP_CACHE_KEY_SALT', 'YYYYYYYYY' );
define( 'WP_REDIS_SCHEME', 'unix' );
define( 'WP_REDIS_PATH', '/usr/local/redis/sockets/serwerXXXXXXXXX.sock' );

WP_CACHE_KEY_SALT to unikatowy identyfikator twojej strony, dzięki któremu nie dojdzie do konfliktu między innymi obiektami w magazynie Redisa. WordPress udostępnia stronę, pod którą możesz wygenerować Salt Key dla wszystkich domyślnych zmiennych. WP_CACHE_KEY_SALT nie należy do domyślnych zmiennych, ale możesz wykorzystać dowolny z wygenerowanych kluczy i wstawić jego wartość zamiast YYYYYYYYY

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. 

Zainstaluj Redis Object Cache

Wróć do panelu administracyjnego WordPressa i wejdź do zakładki Wtyczki > Dodaj nową. W wyszukiwarce wtyczek wpisz Redis Object Cache i zainstaluj oraz włącz wtyczkę o tej samej nazwie.

Po włączeniu wtyczki wyświetlą się jej ustawienia. 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.

Nic więcej nie musisz już konfigurować – od tej pory zapytania SQL są cache’owane w magazynie Redisa.

Artykuł odpowiedział na twoje pytanie? Udostępnij go dalej:
Obrazek domyślny
Błażej Starosta
Ma doświadczenie w tworzeniu oraz prowadzeniu stron WWW, od blogów aż po sklepy internetowe. Od lat uważnie śledzi rozwój WordPressa i jego wpływ na rynek twórców stron internetowych. Stara się być na bieżąco ze wszystkimi nowinkami technologicznymi i dzielić się swoją wiedzą.