Czym object cache różni się od cache stron, kiedy Redis realnie przyspiesza WordPressa i WooCommerce, jak go włączyć w DirectAdmin i jakich pułapek unikać.
Redis object cache to mechanizm, który trzyma wyniki zapytań WordPressa do bazy danych w pamięci RAM serwera. Zamiast pytać bazę o to samo przy każdej odsłonie - listę wtyczek, opcje motywu, menu, dane produktów - WordPress dostaje gotową odpowiedź z pamięci w ułamku milisekundy. Efekt czuć najbardziej tam, gdzie zwykły cache stron nie sięga: w kokpicie administratora, w koszyku sklepu, na stronach zalogowanych użytkowników.
W tym poradniku wyjaśniamy, czym object cache różni się od cache stron, kiedy Redis realnie przyspiesza stronę (a kiedy nic nie da), i jak go włączyć krok po kroku na hostingu z panelem DirectAdmin.
Te dwa mechanizmy są mylone nagminnie, a działają na zupełnie innych piętrach:
| Cache stron (np. LiteSpeed Cache) | Object cache (Redis) | |
|---|---|---|
| Co przechowuje | gotowy HTML całej podstrony | pojedyncze wyniki zapytań do bazy |
| Dla kogo działa | głównie goście niezalogowani | wszyscy, także kokpit i koszyk |
| Kiedy pomaga | przy powtarzalnych odsłonach tych samych stron | przy każdym wygenerowaniu strony przez PHP |
| Typowy efekt | strona z cache w kilkadziesiąt ms | generowanie strony szybsze o 30-60% |
Najlepsze wyniki daje połączenie obu: cache stron obsługuje gości, a Redis przyspiesza wszystko, czego cache stron nie może dotknąć. Jak działa samo cachowanie i jakie ma warstwy, tłumaczymy od podstaw w tekście czym jest cache i jak przyspiesza stronę.
Wygenerowanie jednej podstrony WordPressa to zwykle 20-100 zapytań do bazy danych. Spora część z nich powtarza się przy każdej odsłonie i zwraca identyczny wynik: tabela wp_options (autoload), definicje menu, metadane wpisów, ustawienia wtyczek. WordPress ma wbudowany object cache, ale domyślnie żyje on tylko przez czas jednego żądania - po wysłaniu strony wszystko przepada i kolejna odsłona pyta bazę od zera.
Redis zamienia ten ulotny cache w trwały: wynik raz pobrany z bazy siedzi w RAM i służy kolejnym odsłonom, dopóki się nie zdezaktualizuje. Im więcej wtyczek i im cięższa baza, tym większy zysk - to dlatego największą różnicę widać w sklepach WooCommerce, gdzie samo wygenerowanie koszyka potrafi oznaczać dziesiątki zapytań.
Pomaga wyraźnie:
Pomaga słabo albo wcale:
Uczciwie: Redis to optymalizacja zaplecza. Skraca czas generowania strony (TTFB), ale nie zmieni wyniku, jeśli przeglądarka i tak czeka na 4 MB zdjęć.
Na naszym hostingu Redis jest dostępny w każdym pakiecie. Cała konfiguracja to trzy kroki:
Krok 1: włącz usługę Redis dla konta. W panelu DirectAdmin odszukaj sekcję Redis i uruchom usługę. Panel pokaże Ci ścieżkę gniazda (socket) - na hostingu współdzielonym połączenie odbywa się przez plik gniazda, nie przez port sieciowy, bo każde konto ma własną, odizolowaną instancję. Jeśli pierwszy raz pracujesz z DirectAdmin, podstawy nawigacji znajdziesz w przewodniku po panelu.
Krok 2: zainstaluj wtyczkę. Najpopularniejsze opcje to Redis Object Cache (prosta, robi jedną rzecz) oraz LiteSpeed Cache, który ma obsługę object cache wbudowaną w zakładce Cache - Object. Jeśli używasz LiteSpeed Cache do cache stron, nie instaluj drugiej wtyczki - użyj wbudowanej obsługi, mniej rzeczy może się pogryźć.
Krok 3: wskaż połączenie. W ustawieniach wtyczki wybierz metodę połączenia przez gniazdo unixowe i wklej ścieżkę z panelu. W Redis Object Cache robi się to stałymi w wp-config.php:
define('WP_REDIS_SCHEME', 'unix');define('WP_REDIS_PATH', '/home/uzytkownik/.redis/redis.sock');
Po zapisaniu kliknij „Enable Object Cache" (lub włącz przełącznik w LiteSpeed Cache). Wtyczka utworzy plik object-cache.php w katalogu wp-content - to on przekierowuje wbudowany cache WordPressa do Redisa.
Trzy szybkie testy:
Status we wtyczce. Redis Object Cache pokazuje „Status: Connected" oraz statystyki trafień. LiteSpeed Cache w zakładce Object ma przycisk testu połączenia.
Współczynnik trafień (hit ratio). Po kilku godzinach ruchu zajrzyj w statystyki: dobrze skonfigurowany object cache osiąga 90% i więcej trafień. Wartości rzędu 50-60% oznaczają zwykle, że coś czyści cache zbyt często.
Odczucie w kokpicie. Najprostszy test praktyczny: przejdź po kilku ekranach kokpitu przed i po włączeniu. Na instalacjach z dziesiątkami wtyczek różnica jest widoczna gołym okiem.
Dwie wtyczki object cache naraz. Redis Object Cache plus włączona obsługa w LiteSpeed Cache kończy się konfliktem o plik object-cache.php i losowymi błędami. Jedna wtyczka, jeden mechanizm.
Stary plik object-cache.php po usuniętej wtyczce. Jeśli kiedyś testowano inne rozwiązanie cache, w wp-content może zalegać jego plik. Objaw: wtyczka twierdzi, że cache działa, a statystyki stoją w miejscu. Rozwiązanie: usuń plik wp-content/object-cache.php i włącz cache ponownie z aktualnej wtyczki.
Sesje koszyka znikają po restarcie. Redis trzyma dane w pamięci - restart usługi czyści cache. To normalne i bezpieczne (wszystko odbuduje się z bazy), ale nie trzymaj w Redisie niczego, co ma być trwałe. WooCommerce domyślnie zapisuje sesje w bazie i tak powinno zostać.
Limit pamięci. Instancja Redis na koncie ma przydzielony limit RAM. Po jego osiągnięciu Redis usuwa najdawniej używane wpisy - to projektowe zachowanie, nie awaria. Jeśli hit ratio spada na dużym sklepie, limit może być zbyt ciasny; na naszym hostingu w takiej sytuacji po prostu napisz do nas. Ogólne limity kont opisuje tekst o limitach hostingu.
Cache trzeba wyczyścić po dużych zmianach. Po migracji, zmianie domeny albo ręcznych operacjach na bazie wykonaj wp cache flush (albo przycisk Flush we wtyczce) - inaczej strona może przez chwilę serwować stare dane z pamięci.
Na sklepach efekt jest najłatwiejszy do zmierzenia, bo najwięcej podstron omija cache stron. Typowe obserwacje z naszych wdrożeń: czas generowania koszyka i kasy spada o 30-50%, kokpit przestaje „mulić" przy pracy na zamówieniach, a serwer wykonuje wyraźnie mniej zapytań do bazy w godzinach szczytu - co na hostingu współdzielonym oznacza też mniejsze ryzyko wpadnięcia w limity procesów. Pełną listę optymalizacji sklepu zebraliśmy w poradniku optymalizacja szybkości WooCommerce.
Podkreślmy jednak: liczby zależą od konkretnej strony. Sklep z trzema wtyczkami zyska mniej niż kombajn z pięćdziesięcioma. Dlatego zawsze mierz przed i po - czas odpowiedzi serwera zobaczysz w naszym teście szybkości strony.
Redis object cache to jedna z niewielu optymalizacji, które przyspieszają stronę „od środka": tam, gdzie nie sięga żaden cache stron. Włączenie zajmuje kwadrans, nie wymaga zmian w kodzie i jest w pełni odwracalne. Największy zwrot daje na sklepach i stronach z zalogowanymi użytkownikami; na małej wizytówce ustaw najpierw porządny cache stron, a Redis potraktuj jako wisienkę.
Na każdym pakiecie naszego hostingu Redis jest w cenie - razem z LiteSpeed, dyskami NVMe i codziennym backupem. Jeśli chcesz, żebyśmy skonfigurowali object cache za Ciebie, napisz - robimy to w ramach pomocy technicznej.
Wszystkie poradniki z kategorii: Szybkość i wydajność