Redis cache je užitečná věc, která, pokud ji váš hosting má, může zajímavě zrychlit načítání webu. Zejména pokud je na webu WooCoommerce a další pluginy, které jsou náročné na čtení z databáze, může se pak z administrace stát šnek. A rozhodně ne závodní.
Jak to vypadá bez Redis
- Normální situace je, že při zpracování požadavku PHP skripty sahají pro data do databáze, kde jsou uložena.
- Takových dotazů může být i několik set při volání jediné stránky jedním návštěvníkem webu (ať už se bavíme o webu jako takovém nebo jeho administraci – bavíme se o WordPress).
- Při mnoha paralelních požadavcích to pak může být pořádný nápor na databázový server, zejména na ten “klasického” sdíléného hostingu (“klasického” proto, že ten si nejčastěji pro svůj web pronajímáte).
V čem Redis pomůže?
Redis je in-memory úložiště dat, tj. uložiště v RAM paměti. Ta je velmi rychlá a pro tento účel víc než vhodná. Nutno podotknout, že je na to potřeba mít k dispozici dost execution_memory (256MB minimálně).
- Redis vlastně udělá to, že odpovědi, které by PHP skripty klasicky získaly z databáze, uloží do speciálních datových struktur (hashmapy, stringy, seznamy…) a uloží je do RAM.
- Pokud se pak o data někdo přihlásí, Redis mu je rovnou dá a databázi se tím vyhne (pokud je má k dispozici).
- Data mají nějaký TTL (time to live), protože se samozřejmě musí obnovovat – o to se postará Redis sám.
Jak poznám, že je Redis k dispozici?
To, zda je Redis k dispozici, napoví WordPress samotný.
- V Tools->Site Health (Nástroje -> Zdraví webu) se zobrazí mezi doporučeními hláška, že byste měli použít objektovou cache. A v tu chvíli je pak dobré se zeptat hostingu, jestli Redis mají k dispozici a jak ji nastavit.
Pozn. Redis není jediná objektová cache, kterou může mít hosting k dispozici.
Jak Redis na webu nastavit?
- Nainstalujete plugin Redis Object Cache (zatím bez aktivace).
- Do souboru wp-config.php úplně na začátek pod řádek
<?php
dáte kód pod tímto textem, ve kterém upravíte parametry (ty vám dá hosting).- –HOST nahraďte za jméno serveru, kde Redis běží,
- –PORT nahraďte za číslo portu, kde Redis běží,
- –DOMENA nahraďte za název domény bez protokolu a www (malými písmeny ideálně), např. vyladeny-web.cz
- Plugin aktivujete.
define('WP_REDIS_HOST', '--HOST' );
define('WP_REDIS_PORT', --PORT );
define('WP_CACHE_KEY_SALT', '--DOMENA');
define('WP_REDIS_MAXTTL', '14400'); //1 hour
Pokud máte nastaveno správně, měli byste na v pluginu Redis Object Cache “Připojeno”.
Redis začne působit až po nějakém čase (pár desítek minut). Pak můžete v pluginu pozorovat různé statistiky. Jsou weby, kde dokáže odklonit i 95% dotazů.
Jak poznám, že to funguje?
- web (hlavně administrace) by se měl zrychlit, i někdy citelně.
- Pokud si instalujete i Query Monitor, tak v jeho statistikách uvidíte, že se zátěž na databázi podstatně snížila, i z několika set dotazů na pár desítek (záleží na webu a použitých technologiích).
Které hostingy mají Redis k dispozici?
Co tím a mám vyzkoušeno, tak je Redis dostupný na hostingu:
- Hukot.net (avšak ne na sdíleném hostingu)
- Webglobe.cz
- SvětHostingu.cz
Zajímá vás rychlost vašeho webu?