Co to jest Redis Object Caching i jak go skonfigurować na stronie WordPress

Redis i buforowanie obiektów mogą znacznie przyspieszyć czas ładowania strony WordPress przy każdej kolejnej wizycie. Jest również używany przez wiele popularnych witryn, takich jak GitHub, StackOverflow i wiele innych.

Remote Dictionary Server (Redis) to opensource’owy magazyn struktury danych, znajdujący się w pamięci, używany jako baza danych, pamięć podręczna i broker komunikatów”. Jest to magazyn klucz-wartość, często nazywany bazą danych NoSQL.

Najlepiej stosować go w dynamicznych witrynach internetowych, takich jak witryny WordPress, jeśli chodzi o buforowanie obiektów, które buforuje powtarzające się wyniki zapytań.

Dzisiaj podzielę się szczegółami na temat Object Caching, jego zalet oraz sposobu instalowania i używania Redis do buforowania obiektów w witrynach WordPress.

Co to jest buforowanie?

Jeśli strona internetowa jest buforowana, oznacza to, że elementy tej strony, takie jak obrazy, arkusze stylów i inna zawartość, są ładowane raz, a następnie przechowywane w tak zwanej „pamięci podręcznej”.

Zapamiętuje to, co zostało załadowane, tworzy jego statyczną wersję, a następnie może udostępnić tę wersję znacznie szybciej przy następnym załadowaniu strony.

Rezultatem jest szybsze ładowanie strony i mniejsze wykorzystanie zasobów serwera.

Co to jest buforowanie obiektów/object caching?

Buforowanie obiektów to rodzaj buforowania po stronie serwera. Oznacza to, że buforowanie jest administrowane na poziomie serwera i nie jest kontrolowane przez użytkownika końcowego ani system, którego używa do buforowania.

Buforowanie obiektów przechowuje załadowane wyniki zapytań do bazy danych. Następnie udostępnia je szybciej przy następnym żądaniu, dzięki czemu nie trzeba ponownie przeszukiwać bazy danych.

WordPress ma również wbudowane buforowanie obiektów za pomocą klasy WP_Object_Cache.

Problem w tym, że wbudowane buforowanie obiektów w WordPressie domyślnie nie jest trwałe. Oznacza to, że dane w pamięci podręcznej są przechowywane tylko tak długo, jak trwa żądanie skierowane do bazy danych, co ostatecznie trwa nie dłużej niż wczytanie jednej strony i jest nieefektywne.

Jeśli miałbyś zainstalować i używać rozwiązania do trwałego buforowania obiektów, takiego jak na przykład Redis, dane mogłyby być buforowane dla wszystkich kolejnych ładowań stron, co zapewniłoby Twojej bazie danych dłuższą przerwę.

Kto potrzebuje buforowania obiektów?

Jeśli Twoja strona WordPress jest statyczna i jedyne, co musi załadować, to na przykład arkusz stylów i kilka obrazów, nie zobaczysz żadnej różnicy w korzystaniu z buforowania obiektów.

I odwrotnie, witryna dynamiczna ładuje mnóstwo danych na strony przechowywane w bazie danych, takich jak dane użytkownika, taksonomie, linki i inne podobne dane.

Jak wspomniałem wcześniej, za każdym razem, gdy strona ładuje tę treść, wysyła jedno (a często kilka!) zapytań do bazy danych. Jeśli korzystasz z buforowania obiektów, dane te są przechowywane w pamięci podręcznej i są gotowe do wyświetlenia na stronie w mgnieniu oka.

Do Twojej bazy danych można odpytywać znacznie rzadziej, a pobieranie zawartości z pamięci podręcznej jest znacznie szybsze niż wysyłanie zapytań do bazy danych.

W rezultacie czas ładowania strony jest znacznie szybszy. Zasoby Twojego serwera są również wykorzystywane efektywniej. Jest to szczególnie istotny czynnik, jeśli chcesz skalować swoją witrynę WordPress.

Jeśli więc Twoja witryna generuje duży ruch lub spodziewasz się, że nastąpi to wkrótce i jest dynamiczna, powinieneś rozważyć użycie buforowania obiektów.

Memcached vs Redis: jaka jest różnica?

Memcached to kolejna opcja do trwałego buforowania obiektów, której można użyć zamiast Redis. Jest to popularne rozwiązanie i działa dobrze, chociaż ma mniejszy zestaw funkcji w porównaniu do Redis.

Dlatego Redis jest znacznie popularniejszą opcją. Ale to nie musi oznaczać, że powinieneś całkowicie odrzucić Memcached, zwłaszcza gdy jest on używany przez najpopularniejsze witryny, takie jak Facebook, Twitter, YouTube i inne.

Rozważ swoje opcje, biorąc pod uwagę funkcje, których potrzebujesz, aby pomóc Ci zdecydować, która z nich jest odpowiednia dla Ciebie, ponieważ każdy przypadek jest inny.

Korzystanie z buforowania obiektów Redis w WordPress

Aby użyć Redisa do buforowania obiektów w witrynach WordPress, należy rozpocząć od instalacji i konfiguracji Redis, następnie zainstalowania rozszerzenia PHP, a następnie wtyczki Redis Object Cache.

Wiele zarządzanych rozwiązań hostingowych WordPress oferuje już buforowanie obiektów Redis, więc możesz sprawdzić u swojego hosta, czy jest to dostępna. Mogą mieć dostępną instalację szybką lub jednym kliknięciem.

Jeśli uznasz, że musisz zainstalować go samodzielnie, możesz to zrobić ręcznie.

Tak czy inaczej, zaleca się zainstalowanie Redis na serwerze Linux. Chociaż nie ma oficjalnego wsparcia dla systemu Windows, istnieje port Redis dla systemu Windows opracowany przez firmę Microsoft.

Jeśli zdecydowałeś, że chcesz ręcznie zainstalować Redis do buforowania obiektów na serwerze Linux, istnieje kilka innych wymagań wstępnych:

  • Dostęp root do serwera Linux
  • Dostęp do serwera przez SSH
  • Zainstalowany WordPress
  • PHP w wersji 7.0 lub wyższej
  • Na serwerze zainstalowano zarówno Wget, jak i Sudo
  • Edytor tekstu jest zainstalowany na Twoim serwerze, np. Nano
  • Phpize jest instalowany w celu przygotowania rozszerzenia PHP do kompilacji

Pamiętaj także o utworzeniu kopii zapasowej całej witryny na wypadek, gdyby coś poszło nie tak i konieczne byłoby jej przywrócenie. Dobrym pomysłem jest również przetestowanie Redis przed wdrożeniem go na serwerze produkcyjnym.

1. Instalowanie Redis do buforowania obiektów

Chociaż możesz użyć menedżera pakietów dla Twojej konkretnej dystrybucji Linuksa, takiego jak apt lub yum, może on nie zawsze być aktualny w najnowszej wersji, dlatego zaleca się używanie wget z łączem do archiwum głównego.

W wierszu poleceń wpisz następujące polecenie, aby zainstalować najnowszą stabilną wersję:

wget http://download.redis.io/redis-stable.tar.gz

Następnie wpisz poniższą linię:

tar xvzf redis-stable.tar.gz

Następnie postępuj zgodnie z tym:

cd redis-stable

Na koniec wpisz:

make

2. Konfigurowanie Redis jako pamięci podręcznej

Konieczne jest edytowanie pliku konfiguracyjnego teraz, gdy Redis jest zainstalowany, aby skonfigurować go tak, aby używał go specjalnie do buforowania obiektów.

Aby dostać się do pliku konfiguracyjnego skorzystaj z poniższej linii:

sudo nano /etc/redis/redis.conf

Należy pamiętać, że „nano” to polecenie umożliwiające dostęp do pliku za pomocą edytora Nano. Zastąp to odpowiednim poleceniem, jeśli masz zainstalowany inny edytor.

Znajdź miejsce, w którym jest napisane:

#maxmemory

Następnie zastąp to tym:

maxmemory 128mb
maxmemory-policy allkeys-lfu

Pamiętaj, że możesz zmienić „128” w zależności od potrzeb.

Na przykład 50 MB jest odpowiednie dla wielu instalacji WordPressa, ale jeśli prowadzisz witrynę o dużym natężeniu ruchu, lepszym rozwiązaniem może być 128 MB lub 256 MB. Użyj tego, co najlepiej sprawdza się w przypadku Twojej witryny.

3. Edytuj plik wp-config.php

Domyślnie Redis jest teraz skonfigurowany tak, aby wszystkie przechowywane dane były dostępne dla wszystkich aplikacji na serwerze. Ponieważ stanowi to zagrożenie bezpieczeństwa, ważne jest, aby edytować podstawowy plik WordPress wp-config.php, aby uwzględnić sól klucza pamięci podręcznej.

Nawet jeśli planujesz mieć tylko WordPress na swoim serwerze, nadal ważne jest, aby nie pomijać tego kroku, jeśli zdecydujesz się zainstalować Multisite lub włączyć w przyszłości inne aplikacje na swoim serwerze.

Otwórz plik wp-config.php i nad linią „szczęśliwego blogowania” dodaj następujące elementy, a następnie zapisz plik na swoim serwerze:

define( 'WP_CACHE_KEY_SALT', 'example.com:' );

Nie zapomnij zastąpić „example.com” tym, co chcesz. Nie musi to być domena Twojej witryny, ale upewnij się, że jest wyjątkowa.

Możesz losowo wygenerować wartość klucza, korzystając z bezpłatnego narzędzia, takiego jak Random Key Gen lub KeyGen.io. Pamiętaj, aby chronić je tak, jak swoje hasła.

4. Instalowanie rozszerzenia PHP

Ważne jest również, aby pozwolić WordPressowi skontaktować się z zasobem klucz-wartość Redis, aby móc włączyć buforowanie obiektów. Aby to zrobić, musisz zainstalować rozszerzenie PHP, takie jak PHP Redis.

Wróć do wiersza poleceń i wprowadź następujące polecenie:

wget https://github.com/nicolasff/phpredis/archive/master.zip

Postępuj zgodnie z poniższą linią:

unzip master.zip

Następnie to polecenie:

cd phpredis-master

Masz teraz pobrany i rozpakowany kod źródłowy.

Aby go zainstalować, wpisz to:

phpize

Następnie wpisz poniższą linię:

./configure

Kolejna komenda:

make

Wpisz także poniższe polecenie:

sudo make install

Teraz, gdy PHP Redis jest zainstalowany, musisz utworzyć nowy plik INI. Możesz to zrobić za pomocą poniższej linii:

sudo echo "extension=redis.so" > /etc/php/7.x/apache2/conf.d/redis.ini

Pamiętaj, aby zastąpić „x” w „7.x”, aby odzwierciedlić zainstalowaną wersję PHP 7.

Pamiętaj, że jeśli nie używasz Apache, ścieżka pliku będzie musiała zostać zaktualizowana, aby odzwierciedlała hierarchię plików na serwerze.

5. Uruchom ponownie Redis i PHP

Bardzo ważne jest ponowne uruchomienie PHP i Redis, aby zastosować zmiany wprowadzone powyżej.

Możesz ponownie uruchomić Redis, wpisując poniższe polecenie:

systemctl restart redis-server

Następnie zrestartuj PHP za pomocą tego:

systemctl restart apache2

Pamiętaj, że jeśli nie używasz serwera Apache, użyj odpowiedniego polecenia PHP restart .

6. Sprawdź, czy Redis działa

Teraz, gdy Redis jest zainstalowany, czas sprawdzić, czy działa poprawnie, uruchamiając następujące polecenie:

redis-cli ping

Jeśli zobaczysz odpowiedź „PONG”, Redis jest skonfigurowany i działa.

7. Zainstaluj i aktywuj wtyczkę buforowania obiektów Redis

Następnie zainstaluj wtyczkę Redis Object Caching . Teraz, gdy skończyłeś prace ziemne, instaluje się jak większość innych wtyczek.

Aby uzyskać szczegółowe informacje, zobacz Instalowanie wtyczek w Kodeksie WordPress.

Podsumowanie

Buforowanie obiektów może drastycznie zwiększyć szybkość ładowania strony WordPress i możesz to zrobić za pomocą Redis. Wymaga to pewnej konfiguracji, ale jeśli wykonasz powyższe kroki, wszystko będzie skonfigurowane i gotowe do pracy.

Leave a Comment

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