Redis je open source (licencovaný BSD), úložiště datové struktury v paměti, používané jako databáze, mezipaměť a zprostředkovatel zpráv. Lze jej kombinovat s jinými databázemi, jako je MySQL, a poskytnout tak mechanismus pro ukládání vašich dotazů do mezipaměti.
V tomto článku si ukážeme, jak ukládat do mezipaměti dotazy MySQL, které jsou nutné k vykreslení stránek WordPress. To nám zajistí výrazné zvýšení výkonu, i když s určitými výhradami.
Úvod do lepšího ukládání do mezipaměti WordPress
WordPress používá databázi MySQL k ukládání interních aplikačních objektů (drobky, položky menu atd.), jejichž generování může být nákladné. Vzhledem k tomu, že databáze zpracovává také dotazy na požadavky na stránky, je to možná nejběžnější problémové místo a často způsobuje delší dobu načítání.
Redis poskytuje mechanismus ukládání do mezipaměti, který funguje jako alternativa k databázi MySQL. Pokud uživatel navštíví stránku WordPress, dotazy MySQL potřebné k vygenerování stránky jsou obsluhovány prostřednictvím Redis, který ukládá výsledky do mezipaměti. Výsledkem jsou bleskově rychlé časy načítání, srovnatelné se statickými stránkami.
Další oblíbenou možností ukládání do mezipaměti je Memcached. Redis však dělá téměř vše, co Memcached, takže pro tento výukový program budeme používat hostování ScaleGrid pro Redis™*.
Jak funguje ukládání do mezipaměti Redis?
Když uživatel poprvé požádá o stránku WordPress, provede se na serveru dotaz MySQL. Redis ukládá tento dotaz do mezipaměti, takže když jiný uživatel požaduje stejnou stránku WordPress, výsledky jsou poskytovány z Redis, aniž by bylo nutné znovu dotazovat databázi.
Pokud dotaz není uložen v mezipaměti Redis, výsledky poskytuje MySQL, které jsou poté přidány do mezipaměti Redis.
Pokud je určitá hodnota v databázi aktualizována, odpovídající hodnota Redis se zneplatní, aby se uživateli nedostala špatná data z mezipaměti.
Požadavky na výukový program
Zde je seznam technologií použitých v tomto článku:
- 2 instalace WordPress (s pluginem a bez něj, pro srovnávací testy)
- Server Redis™
- Plugin Redis WP Object Cache
Instalace aplikace WordPress
Zde si můžete stáhnout nejnovější verzi WordPress a nastavit dvě různé instalace na hostiteli, jako je Heroku nebo AWS.
Server Redis
ScaleGrid poskytuje prvotřídní podporu pro Redis™ Standalone a Master/Slave clustery s vylepšenými bezpečnostními funkcemi. Budeme používat samostatný cluster Redis™ hostovaný na ScaleGrid se strategií ukládání do mezipaměti Allkeys-LRU a můžete se zaregistrovat k bezplatné 30denní zkušební verzi našeho hostování pro Redis™, abyste vám pomohli s tímto výukovým programem.
Plugin Redis WP Object Cache
Tento plugin se používá jako drop-in do vaší instalace WordPress a lze jej nakonfigurovat tak, aby používal hostitele Redis™. Plugin najdete zde.
Pokyny k nastavení:Mezipaměť objektů Redis pro WordPress
Zde jsou kroky pro instalaci modulu Redis Object Cache do instalace WordPress.
Krok 1:Nainstalujte modul Redis Cache Plugin
Tento výukový program předpokládá, že již máte nastavené dvě nové instalace WordPressu. Na jeden z nich je potřeba nainstalovat plugin Redis Object Cache. Jakmile je plugin nainstalován, můžete jej aktivovat z nabídky pluginů.
Krok 2:Najděte Redis v Nastavení
Jakmile je plugin aktivován, v nabídce Nastavení se objeví možnost Redis.
Krok 3:Přidejte konfigurace WordPress
Po nastavení pluginu musíme do konfiguračního souboru WordPress přidat možnosti konfigurace. Minimálně byste museli nastavit následující možnosti:
define('WP_REDIS_HOST', ''); define('WP_REDIS_PASSWORD', '');
Výše uvedené možnosti naleznete na stránce Podrobnosti o clusteru ScaleGrid pro Redis™.
Uložte konfiguraci a povolte mezipaměť objektů. Pokud je ověření správné, měli byste vidět následující obrazovku:
V tuto chvíli byl Redis nakonfigurován jako mezipaměť pro vaši instalaci WordPressu.
Monitorování a ladění dotazů WordPress
Všechny clustery Redis se instalují s nástrojem rozhraní příkazového řádku Redis (redis-cli), který můžete použít ke sledování příchozích požadavků na dotazy z WordPress. Zde je snímek obrazovky, jak by to mohlo vypadat:
Pokud na konzole nevidíte žádný výstup, přejděte na web WordPress a obnovte stránku.
Metriky WordPress a Redis ke sledování
Hlavní metrikou, kterou je zde třeba sledovat, je doba načítání stránky. Zde je výchozí konfigurace, kterou používáme pro novou instalaci:
- WordPress:4.9.5
- Redis:v.4.0.2
- Téma WordPress:Dvacet sedmnáct
Na základě nové instalace s výše uvedenými parametry můžeme vidět téměř 50% snížení doby načítání stránky:
- Bez mezipaměť objektů Redis =~900 ms
- S mezipaměť objektů Redis =~400 ms
Nevýhody mezipaměti objektů Redis
Existuje několik upozornění na používání přístupu Redis Object Cache na WordPress. Mechanismus ukládání do mezipaměti nefunguje dobře, pokud máte nainstalovaných mnoho pluginů a motivů. To je způsobeno skutečností, že všechna jejich data by musela být také uložena do mezipaměti s Redis.
V našem dřívějším článku se také můžete dozvědět, jak ukládat tweety do mezipaměti pomocí Node.js, Redis a Socket.io.
Jako vždy, pokud postavíte něco úžasného, napište nám o tom tweet @scalegridio. Pokud potřebujete pomoc se správou nebo hostováním databáze MongoDB® nebo Redis™, kontaktujte nás na adrese [email protected].