FREESCO.PL Dla informatyka i laika
redis

Redis

Redis to niezwykle szybka, otwarte oprogramowanie działające jako nierelacyjna baza danych NoSQL, która przechowuje dane w pamięci operacyjnej RAM. Jak to działa? Przechowuje dane w pamięci zamiast na dysku i to gwarantuje milisekundowe czasy odpowiedzi. Każdy element w bazie jest powiązany z unikalnym kluczem, co ułatwia i przyspiesza jego wyszukiwanie. Obsługuje złożone struktury. Odciąża główne bazy danych (np. MySQL) poprzez szybkie serwowanie często żądanych danych. Jest powszechnie stosowany w systemach CMS takich, jak WordPress jako obiektowa pamięć podręczna.

W przypadku WordPressa służy do tego prosta w instalacji i konfiguracji wtyczka, a więc uruchomienie Redis jest banalnie proste. W większości hostingów, w panelu użytkownika znaleźć można też odpowiednią opcję, która uruchomi Redis w naszej instancji serwera www. Gdy mamy własny serwer, musimy z repozytorium naszej dystrybucji zainstalować serwer redis (install redis-server), a następnie uruchomić i włączyć na stałe (systemctl start redis-server
i systemctl enable redis-server). Jeśli ktoś ma serwer z Debianem (lub podobnym) musi do tych komend użyć sudo, a jeśli to jakaś pochodna Red Hata, to trzeba być rootem). No i oczywiście najpierw musimy wywołać aplikację, która ma to nam zainstalować, np. apt lub yum.

Kolejny krok, to instalacja rozszerzenia odpowiedniej wersji PHP (php-redis). Redis będzie działał na interfejsie lo, domyślnie na porcie 6379. I od tego momentu nasza strona na WordPressie będzie korzystać z Redis, gdy tylko uruchomimy i skonfigurujemy wtyczkę. Najprostszym sposobem sprawdzenia jest szybkie zapisanie kilku poleceń w pliku, powiedzmy redis.php i uruchomienie tego pliku w katalogu strony. Powita nas napis: „Witaj w Redis”.


<?php
// Tworzenie instancji klasy Redis
$redis = new Redis();
// Połączenie z lokalnym serwerem Redis (domyślny port 6379)
$redis->connect('127.0.0.1', 6379);
// Zapisanie danych
$redis->set("klucz_testowy", "Witaj w Redis.");
// Odczyt danych
echo $redis->get("klucz_testowy");
?>

Gdy już uruchomimy Redis i włączymy wtyczkę w WordPressie, odczekajmy nieco, by w cache nazbierało się trochę danych. Na stronie konfiguracji wtyczki zobaczymy od razu: Status: Połączono, System plików: Zapisywalny, Redis: Dostępny. Zielony kolor komunikatów oznacza, że wszystko działa. Natomiast w zakładce Dane znajdziemy wykresy.

wykres czasu dostępu redis

Najciekawsze informacje znajdują się w zakładce Diagnostyka, jednak nie są one human friendly. Zawsze wychodzę z założenia, że wszędzie tam, gdzie można ułatwić sobie pracę, trzeba to robić. Zatem poniższy wpis przekazałem do AI, żeby uzyskać łatwiejszy opis.

Status: Połączono
Client: PhpRedis (v6.0.2)
Drop-in: Valid
Disabled: No
Ping: 1
Errors: []
PhpRedis: 6.0.2
Relay: Not loaded
Predis: 2.4.1
Credis: Not loaded
PHP Version: 8.3.8
Plugin Version: 3.0.0
Redis Version: 3.2.12
Multisite: No
Metrics: Enabled
Metrics recorded: 131
Filesystem: Writable
Global Prefix: "sr_"
Blog Prefix: "sr_"
Timeout: 1
Read Timeout: 1
Retry Interval:
Persistent:
WP_REDIS_PLUGIN_PATH: "/var/www/html/katalog-strony/wp-content/plugins/redis-cache"
Global Groups: [
"blog-details",
"blog-id-cache",
"blog-lookup",
"global-posts",
"networks",
"rss",
"sites",
"site-details",
"site-lookup",
"site-options",
"site-transient",
"users",
"useremail",
"userlogins",
"usermeta",
"user_meta",
"userslugs",
"redis-cache",
"blog_meta",
"image_editor",
"network-queries",
"site-queries",
"theme_files",
"translation_files",
"user-queries"
]
Ignored Groups: [
"counts",
"plugins",
"theme_json",
"themes"
]
Unflushable Groups: []
Groups Types: {
"blog-details": "global",
"blog-id-cache": "global",
"blog-lookup": "global",
"global-posts": "global",
"networks": "global",
"rss": "global",
"sites": "global",
"site-details": "global",
"site-lookup": "global",
"site-options": "global",
"site-transient": "global",
"users": "global",
"useremail": "global",
"userlogins": "global",
"usermeta": "global",
"user_meta": "global",
"userslugs": "global",
"redis-cache": "global",
"blog_meta": "global",
"image_editor": "global",
"network-queries": "global",
"site-queries": "global",
"theme_files": "global",
"translation_files": "global",
"user-queries": "global",
"counts": "ignored",
"plugins": "ignored",
"theme_json": "ignored",
"themes": "ignored"
}
Drop-ins: [
"advanced-cache.php v by ",
"Redis Object Cache Drop-In v3.0.0 by Till Krüss"
]

🟢 Status: Połączono z Redisem
Redis działa poprawnie – wszystko jest skonfigurowane i gotowe.
Działające komponenty:
PhpRedis (v6.0.2) – załadowany, działa
Predis (v2.4.1) – dostępny (ale nie używany)
PHP w wersji 8.3.8
Redis w wersji 3.2.12
Wtyczka Redis Object Cache w wersji 3.0.0
Drop-in (kluczowy plik konfiguracyjny) – ważny i aktywny
Ping do Redisa – 1 ms (bardzo szybka komunikacja)
Brak błędów
Niezaładowane (niepotrzebne):
Relay – nieaktywny
Credis – nieaktywny
Ustawienia połączenia:
Timeout: 1 sekunda
Read Timeout: 1 sekunda
Brak interwału retry (domyślne wartości)
Brak persistent connections
Prefixy kluczy:
Globalny: wp_
Blogowy: wp_
Grupy buforowane (Global Groups): Wiele grup jest buforowanych w Redisie, np.:
Informacje o blogu (blog-details, blog-id-cache, blog-lookup)
Użytkownicy (users, usermeta, user_meta, userlogins, useremail)
Sieć i strony (sites, networks, site-details, site-options)
Różne dane (rss, redis-cache, image_editor, theme_files, translation_files)
Ignorowane grupy (nie buforowane):
counts – liczniki
plugins – wtyczki
theme_json – tematy JSON
themes – tematy
Dodatkowe informacje:
Multisite: nie
Metryki: włączone, zapisano 213 rekordów
Plik advanced-cache.php – obecny
Foldery zapisywalne
Podsumowanie: Wszystko działa idealnie – Redis jest poprawnie podłączony, konfiguracja jest poprawna, brak błędów. Buforowanie działa bezproblemowo.

I to jest to, co administrator serwera lubi najbardziej. 😉

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *