Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Korzystanie z pamięci podręcznej obiektów Redis w celu przyspieszenia instalacji WordPress

Redis to magazyn struktury danych typu open source (na licencji BSD), używany jako baza danych, pamięć podręczna i broker komunikatów. Można go łączyć z innymi bazami danych, takimi jak MySQL, aby zapewnić mechanizm buforowania zapytań.

W tym artykule pokażemy, jak buforować zapytania MySQL, które są wymagane do renderowania stron WordPress. Zapewni nam to znaczny wzrost wydajności, choć z pewnymi zastrzeżeniami.

Wprowadzenie do lepszego buforowania WordPress

WordPress używa bazy danych MySQL do buforowania wewnętrznych obiektów aplikacji (okruszków, elementów menu itp.), których wygenerowanie może być kosztowne. Ponieważ baza danych obsługuje również zapytania dotyczące żądań stron, jest to prawdopodobnie najczęstsze wąskie gardło i często powoduje zwiększone czasy ładowania.

Redis zapewnia mechanizm buforowania, który działa jako alternatywa dla bazy danych MySQL. Jeśli użytkownik odwiedza stronę WordPress, zapytania MySQL wymagane do wygenerowania strony są obsługiwane przez Redis, który buforuje wyniki. Powoduje to niesamowicie szybkie czasy ładowania, porównywalne ze stronami statycznymi.

Innym popularnym wyborem buforowania jest Memcached. Jednak Redis robi prawie wszystko, co robi Memcached, więc będziemy używać hostingu ScaleGrid dla Redis™* ze względu na ten samouczek.

Jak działa buforowanie Redis?

Kiedy użytkownik po raz pierwszy żąda strony WordPress, zapytanie MySQL jest wykonywane na serwerze. Redis buforuje to zapytanie, więc gdy inny użytkownik zażąda tej samej strony WordPress, wyniki są dostarczane z Redis bez konieczności ponownego przeszukiwania bazy danych.

Jeśli zapytanie nie jest buforowane w Redis, wyniki są dostarczane przez MySQL, które są następnie dodawane do pamięci podręcznej Redis.

Jeśli konkretna wartość jest aktualizowana w bazie danych, odpowiadająca jej wartość Redis jest unieważniana, aby zapobiec wyświetlaniu użytkownikowi złych danych z pamięci podręcznej.

Wymagania samouczka

Oto lista technologii użytych w tym artykule:

  • 2 instalacje WordPress (z wtyczką i bez, do testów porównawczych)
  • Serwer Redis™
  • Wtyczka pamięci podręcznej obiektów WP Redis
Jak przyspieszyć instalację WordPressa za pomocą Redis Object CacheClick To Tweet

Instalacja WordPress

Możesz pobrać najnowszą wersję WordPressa tutaj i skonfigurować dwie różne instalacje na hoście takim jak Heroku lub AWS.

Serwer Redis

ScaleGrid zapewnia światowej klasy obsługę klastrów Redis™ Standalone i Master/Slave z ulepszonymi funkcjami bezpieczeństwa. Będziemy używać klastra Standalone Redis™ hostowanego na ScaleGrid ze strategią buforowania Allkeys-LRU. Możesz zarejestrować się, aby uzyskać bezpłatną 30-dniową wersję próbną naszego hostingu dla Redis™, aby pomóc w tym samouczku.

Wtyczka pamięci podręcznej obiektów WP Redis

Wtyczka ta jest używana jako dodatek do instalacji WordPressa i może być skonfigurowana do korzystania z hosta Redis™. Wtyczkę znajdziesz tutaj.

Instrukcje konfiguracji:pamięć podręczna obiektów Redis dla WordPress

Oto kroki, aby zainstalować wtyczkę Redis Object Cache w instalacji WordPress.

Krok 1:Zainstaluj wtyczkę Redis Cache

W tym samouczku założono, że masz już skonfigurowane dwie nowe instalacje WordPressa. Na jednym z nich musisz zainstalować wtyczkę Redis Object Cache. Po zainstalowaniu wtyczki możesz ją aktywować z menu wtyczek.

Krok 2:Znajdź Redis w ustawieniach

Po aktywacji wtyczki w menu Ustawienia pojawi się opcja Redis.

Krok 3:Dodaj konfiguracje WordPress

Po skonfigurowaniu wtyczki musimy dodać opcje konfiguracyjne do pliku konfiguracyjnego WordPressa. Musisz przynajmniej skonfigurować następujące opcje:

define('WP_REDIS_HOST', '');
define('WP_REDIS_PASSWORD', '');

Powyższe opcje można znaleźć na stronie Szczegóły klastra ScaleGrid dla Redis™.

Zapisz konfigurację i włącz bufor obiektów. Jeśli uwierzytelnianie jest prawidłowe, powinieneś zobaczyć następujący ekran:

W tym momencie Redis został skonfigurowany jako pamięć podręczna dla Twojej instalacji WordPressa.

Monitorowanie i debugowanie zapytań WordPress

Wszystkie klastry Redis są instalowane z narzędziem wiersza poleceń Redis (redis-cli), którego można używać do monitorowania przychodzących żądań zapytań z WordPress. Oto zrzut ekranu, jak to może wyglądać:

Jeśli nie widzisz żadnych danych wyjściowych w konsoli, przejdź do witryny WordPress i odśwież.

Wskaźniki WordPress i Redis do śledzenia

Głównym wskaźnikiem do śledzenia jest czas wczytywania strony. Oto domyślna konfiguracja, której używamy do nowej instalacji:

  • WordPress:4.9.5
  • Redis:v.4.0.2
  • Motyw WordPress:dwadzieścia siedemnaście

Na podstawie nowej instalacji z powyższymi parametrami, możemy zauważyć prawie 50% skrócenie czasu ładowania strony:

  • Bez pamięć podręczna obiektów Redis =~900ms
  • Z pamięć podręczna obiektów Redis =~400ms

Wady pamięci podręcznej obiektów Redis

Istnieje kilka zastrzeżeń dotyczących korzystania z metody pamięci podręcznej obiektów Redis w WordPress. Mechanizm buforowania nie działa dobrze, jeśli masz zainstalowanych wiele wtyczek i motywów. Wynika to z faktu, że wszystkie ich dane musiałyby być również buforowane w Redis.

Z naszego wcześniejszego artykułu dowiesz się również, jak buforować tweety za pomocą Node.js, Redis i Socket.io.

Jak zawsze, jeśli zbudujesz coś niesamowitego, napisz do nas o tym na Twitterze @scalegridio. Jeśli potrzebujesz pomocy w zarządzaniu lub hostowaniu bazy danych MongoDB® lub Redis™, skontaktuj się z nami pod adresem [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Liczba wygasających kluczy wymienionych przez polecenie info na serwerze redis slave nie jest zgodna z tym, co widzę

  2. Kolejka zadań z redis przy użyciu BLPOP

  3. Redis zrevrangebyscore, sortowanie inne niż porządek leksykograficzny

  4. Serializacja Redis poprzedzona dodatkowym ciągiem

  5. Push do kolejki Laravel z zewnątrz Laravel (NodeJS)