Powered by Smartsupp
Webařské tipy

Redis cache

Redis cache je jednou z věcí, která může ulevit infrastruktuře a zrychlit načítání webu.

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.
image 2

Jak Redis na webu nastavit?

  1. Nainstalujete plugin Redis Object Cache (zatím bez aktivace).
  2. 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
  3. 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”.

image 6

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ů.

image 5

Jak poznám, že to funguje?

  1. web (hlavně administrace) by se měl zrychlit, i někdy citelně.
  2. 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:

Zajímá vás rychlost vašeho webu?

Jitka Klingenbergová

Jitka Klingenbergová

Absolventka ČVUT FIT oboru Informatika | Programátorka | Webová vývojářka, konzultantka a mentorka
tvorime@vyladeny-web.cz

Líbil se vám článek? Pošlete ho dál:

Pravidelná dávka užitečných tipů až do schránky