Redis to otwarty (licencjonowany przez BSD) magazyn struktury danych w pamięci, używany jako baza danych, pamięć podręczna i broker komunikatów. Redis udostępnia struktury danych, takie jak ciągi znaków, skróty, listy, zbiory, posortowane zestawy z zapytaniami o zakres, mapy bitowe, hiperlogogi, indeksy geoprzestrzenne. Redis ma wbudowaną replikację, skrypty Lua, eksmisję LRU, transakcje i różne poziomy trwałości na dysku oraz zapewnia wysoką dostępność za pośrednictwem Redis Sentinel i automatycznego partycjonowania za pomocą klastra Redis.
Na tych typach można wykonywać niepodzielne operacje, takie jak dołączanie do łańcucha; zwiększanie wartości w skrócie; wypychanie elementu na listę; przecięcie zbioru obliczeniowego, suma i różnica; lub zdobycie członka o najwyższym rankingu w posortowanym zestawie.
Aby osiągnąć najwyższą wydajność, Redis współpracuje z zestawem danych w pamięci. W zależności od przypadku użycia można utrwalać dane, okresowo zrzucając zestaw danych na dysk lub dołączając każde polecenie do dziennika dyskowego. Możesz również wyłączyć utrwalanie, jeśli potrzebujesz tylko bogatej w funkcje, sieciowej pamięci podręcznej w pamięci.
Redis obsługuje również replikację asynchroniczną, z bardzo szybką, nieblokującą pierwszą synchronizacją, automatycznym ponownym połączeniem z częściową ponowną synchronizacją przy podziale sieci.
Domyślnie Redis przechowuje dane w pamięci, domyślnie z okresowym utrwalaniem dysku. Ponieważ Redis utrwala dane na dysku, może służyć jako klasyczna baza danych w wielu przypadkach, a także jako pamięć podręczna. Gdy jest pełny, Redis zwróci klientowi błąd, ale można go skonfigurować jako pamięć podręczną, aby wysyłać starsze i mniej ważne dane, gdy napływają nowe dane. W obu przypadkach głównym ograniczeniem jej wykorzystania jest rozmiar dostępnej pamięci.
Redis jest powszechnie używany jako pamięć podręczna do przechowywania często używanych danych w pamięci, dzięki czemu aplikacje mogą reagować na użytkowników. Dzięki możliwości określenia, jak długo chcesz przechowywać dane i które dane mają być eksmitowane jako pierwsze, Redis udostępnia szereg inteligentnych wzorców buforowania.
Jaki wpływ na szybkość ładowania strony ma Redis?
W zależności od środowiska webowego, możemy zauważyć zwiększoną wydajność aplikacji WordPress, co przekłada się na niższe czasy ładowania poszczególnych podstron oraz unormowanie maksymalnych czasów ładowania.
Każdy test trwał 60 minut.
Nazwa.pl – Apache – Redis włączony (ON) #1
- Średni czas ładowanie strony – 265 milisekund
Nazwa.pl – Apache – Redis włączony (ON) #2
Zauważalny problem z ładowaniem strony głównej, ale reszta podstron ładuje się bezbłędnie. Wina po stronie serwera?
- Średni czas ładowanie strony – 455 milisekund
Nazwa.pl – Apache – Redis włączony (ON) #3
Kontynuacja problemu z ładowaniem strony głównej.
- Średni czas ładowanie strony – 361 milisekund
Nazwa.pl – Apache – Redis włączony (ON) #4
- Średni czas ładowanie strony – 270 milisekund
Nazwa.pl – Apache – Redis wyłączony (OFF) #1
- Średni czas ładowania strony – 358 milisekund
Nazwa.pl – Apache – Redis wyłączony (OFF) #2
- Średni czas ładowania strony – 416 milisekund
Webd.pl – Litespeed – Redis włączony (ON) #1
- Średni czas ładowania strony – 451 milisekund
Webd.pl – Litespeed – Redis włączony (ON) #2
- Średni czas ładowania strony – 367 milisekund
- Niski czas interwału czasowego na pierwszym obrazku
Webd.pl – Litespeed – Redis wyłączony (OFF) #1
- Średni czas ładowania strony – 484 milisekund
Webd.pl – Litespeed – Redis wyłączony (OFF) #2
- Średni czas ładowania strony – 402 milisekund
Mydevil.net – Apache/N-G-I-N-X – Redis włączony (ON) #1
- Średni czas ładowania strony – 398 milisekund
Mydevil.net – Apache/N-G-I-N-X – Redis włączony (ON) #2
- Średni czas ładowania strony – 392 milisekund
- Wykres z prawej strony ma rozciągniętą skalę do 10000 milisekund, podczas, gdy wynik z testu #1 ma skale 3000 milisekund. Niech was to nie zmyli.
Mydevil.net – Apache/N-G-I-N-X – Redis wyłączony (OFF) #1
- Średni czas ładowania strony – 475 milisekund
Cyber_folks.pl – Litespeed – Redis włączony (ON) #1
- Średni czas ładowania strony – 513 milisekund
Cyber_folks.pl – Litespeed – Redis włączony (ON) #2
- Średni czas ładowania strony – 524 milisekund
Cyber_folks.pl – Litespeed – Redis wyłączony (OFF) #1
- Średni czas ładowania strony – 561 milisekund
Szczegółowe wyniki znajdziecie w Google Docs.
Ciekawe porównanie. Kiedy wykonasz nowe testy dla wszystkich dostawców z Redisem? Bo widać że nie korzystając z Redisa pokrzywdziłeś wszystkich którzy korzystają z Apacha/Nginxa faworyzując konfiguracje oparte o Litespeed.
Wszystkich dostawców z Redisem? Przecież ich jest garstka w aktualnej edycji rankingu i właśnie można na nich popatrzeć w tym osobnym teście. W tym teście miał się pojawić również Dhosting, ale niestety, Redis nigdy się nie uruchomił, próbowałem odpalić Redisa dwa razy na ich serwerach.
Można sobie za to przyjąć zasadę, że hosting, który oferuje Redis/Memcached, będzie miał jakąś ~10-15% przewagę w wydajności nad hostingiem, który nie oferuje Redisa/Memcached.
Skoro ci dostawcy dostarczają Redis/Memcached to powinieneś go u nich używać. Bo inaczej to faworyzujesz hostingi z Litespeed które robią podobne cachowanie podobne do Redis/Memcached tyle, że na poziomie cache serwera. Skoro Redis/Memcached przyspiesza działanie stron, to powinien być udostępniany przez wszystkie firmy hostingowe.
ps. Pisze drugi raz komentarz, bo za pierwszym razem chyba mi go nie przyjęło.
Powinieneś wykorzystać wszystkie metody optymalizacji, które dostarczają firmy hostingowe. Inaczej Twoje porównanie nie ma sensu, gdyż celowo obniżasz wydajność tych firm, które dostarczają Redis/Memcached, faworyzując w teście jedynie moduł i cache w Litespeed, który wykorzystuje podobne cachowanie do Redis/Memcached. Skoro zastosowanie Redis/Memcached przyspiesza działanie serwisów to powinna go udostępniać każda firma hostingowa.
Litespeed nie wykorzystuje żadnego, podobnego cachowanie do Redis/Memcached. Może również korzystać z Redis/Memcached, jeżeli usługodawca go udostępnia, ale defaultowo jest wyłączony, więc każdy hosting miał wyrównane szanse.
Większość hostingów nie udostępnia Redisa/Memcached.
Bazując na dokumentacji, Litespeed dokonuje jednak optymalizacji zapytań do bazy:
„ Database Optimization
Keeps the WordPress database slim, trim, and as efficient as possible.
Speeds up database queries by eliminating the clutter that accumulates over time.
Eliminates the need for a separate database optimization plugin.„
Jeżeli udało Ci się aktywować Redisa w powyższych firmach i wykonać testy to chyba jego aktywacja nie było aż taka trudna. Tym bardziej że przecież musiałeś również ustawić wszystkim Opcache i tą samą wersję PHP. A skoro dzisiaj już wiesz że wyniki z Redis są lepsze to powinieneś je opublikować w głównym zestawieniu. W końcu celem tych testów jest sprawdzenie szybkości hostingu w każdej firmie, bazując na narzędziach dostępnych w pakiecie. Może zachęci to inne firmy do wdrożenia Redis/Memcached?
na jednym hostingu było łatwiej uruchomić Redisa, na innych trudniej, co nie oznacza, że można go uruchomić na każdym hostingu. Optymalizacje bazy danych z litespeed, a Redis, to nie to samo.
Testy były przeprowadzone bez redisa na wszystkich hostingach, żeby były relatywnie miarodajne.
Oczywiście że optymalizacja w Redis i Litespeed to nie to samo, ale skoro nie chciałeś korzystać z cachowania zapytań na Litespeed, to nie powinieneś wykorzystywać wtyczki lscache która jednak korzysta z optymalizacji zapytań do bazy danych. Dziwie się wiec, że po zrobieniu testów z Redis u tych dostawców którzy go oferują, nie przedstawiasz tych wyników w głównym zestawieniu. To przecież nie jest ich wina, że od razu nie włączyłeś cache, który był dostępny w planie hostingowym. Wcześniej można by to odczytać jako Twoją niewiedzę, ale teraz to już celowe działanie aby nie przedstawić najlepszego wyniku u tych dostawców.
w litespeed nie ma żadnego cachowania zapytań do bazy danych, optymalizacje polegają na czyszczeniu bazy danych z rewizji postów. Tak jak pisałem wcześniej, redis, a optymalizacje litespeed, to dwie, bardzo różne bajki.
Super zestawienie. Dzięki!