SlideShare une entreprise Scribd logo
1  sur  19
Principy cachování
ve WordPressu
David Biňovec david.binovec@gmail.com
david_binovec@parade.com
http://david.binda.cz
Obsah přednášky
● Co je to cache, co cachovat
● Možnosti cachování - PHP a MySQL
o Memcached, Alternative PHP Cache (APC)
o MySQL Query Cache
● Page level a Object Cache
● Jak je WordPress na cache připravený
o Transients API
o WP_Object_Cache a wp_cache funkce
o oEmbed cache
Co je to Cache a co cachovat?
● Ukládání dřívě získaných dat, nebo jejich kopie, tak,
aby byly při dalších operacích k dispozici rychleji
● Cachovat lze skoro vše
o celé stránky a objekty
o výsledky dotazů do externí API, náročné výpočty ...
● … a ještě něco navíc
o MySQL Query Cache
o OpCode
MySQL Query Cache
● pouze identické a deterministické SELECT
dotazy
● přetvrvává mezi jednotlivými sessions
● smazání relevantních dotazů po změně
tabulky
● nedistribuovaná
Cache engines
● Memcached
o distribuovaná (server dostupný přes telnet)
o key - value pairs uložené v paměti serveru
o PECL rozšíření pro PHP (memcached/memcache)
● Alternative PHP Cache (APC)
o Opcode i user cache (PHP <= 5.4), APCu (PHP 5.5)
o nedistribuovaná
● Statický soubor
o např. mod_rewrite (WP Super Cache), CDN
Page Level vs. Object Cache
● Page level cache (např. WP Super Cache)
o ukládá pouze celé stránky
o každá stránka se musí vygenerovat celá sama o
sobě se všemi DB, API a dalšími dotazy
o obvykle nefunguje pro přihlášené
● Object cache (APC, Memcached, W3TC)
o znovupoužitelná pro generování více stránek
o funguje i pro přihlášené uživatele
o použitelná také v administraci WordPressu
Page Level Cache
● HTML soubory uložené na disku
o načítání pomocí PHP či mod_rewrite (WP Super
Cache)
● memcached (Batcache)
o lze využít i bez použití PHP přímo na serveru
(NginX, Apache ...)
● CDN
o cloudflare (W3TC)
o jakýkoli jiný (WP Super Cache)
Jak zacachovat stránku ve WP
WP Super Cache - mod_rewrite
Object Cache
● cachujeme znovupoužitelné objekty
o znovupoužitelné v rámci jednoho requestu
o a hlavně znovupoužitelné napříč requesty
● objekt tvoří jeden, ale i více SQL dotazů
o je výsledkem mnoha funkcí, metod …
● Například:
o WP_User (capabilities, user_meta)
o WP_Post ...
Jak je WP připravený na cachování
● Transients API
o set_transient, get_transient, delete_transient
o set_site_transient, get_site_transient …
● WP_Object_Cache třída a wp_cache funkce
o wp-includes/cache.php
 wp_cache_add, wp_cache_set,
wp_cache_replace
 wp_cache_get
 wp_cache_delete, wp_cache_flush
Transients API
● dočasné ukládání cachovaných dat
● defaultně využívá tabulku wp_options
o add_option s parametrem autoload = “no”
 pokud nemá expiraci, pak autoload = “yes”
o přidává dva řádky do tabulky
 hodnotu transient
 maximální expirační čas (nikoli garantovaný)
● v jádře je implementace ukládající data do
globální proměnné
o z podstaty věci, defaultně, jen po dobu session
● má význam například při opakovaném
dotazu do zatabáze
o lze s klidným svědomím opakovaně volat například
get_post_meta bez přetěžování databáze
WP_Object_Cache
Kde se WP_Object_Cache používá
● get_metadata (post, user, comment ...)
● get_option (autoload options)
● get_post, get_user, get_comment, get_term
● transients
● ...
wp_cache funkce
● wp_cache_set($key, $data, $group, $expire)
o defaultně bez expirace ($expire = 0)
● wp_cache_get( $key, $group )
o group umožnuje používat stejní klíče pro různé
skupiny
Externí WP_Object_Cache - dropins
● dropins
o wp-content/advanced-cache.php
o wp-content/object-cache.php
● object-cache.php
o zamezí načtění souboru wp-includes/wp_cache.php
o znovu definuje WP_Object_Cache i wp_cache
funkce
o využívá libovolný externí cachovací engine
 memcache, APC, souborvý systém ...
Cachování v post_meta tabulce
● oEmbed post_meta cache v jádře WP
WordPress Cachovací Pluginy
● WP Super Cache http://wordpress.org/plugins/wp-super-
cache/
o page level cache využívající mod_rewrite
● W3 Total Cache http://wordpress.org/plugins/w3-total-cache/
o několik object-cache enginů
● Batcache http://wordpress.org/plugins/batcache/
● object-cache.php dropins
http://wordpress.org/plugins/memcached/
http://wordpress.org/plugins/apc/
Principy Cachování ve WP - Shrnutí
● Memcached, APC, MySQL Query Cache
● Page level vs. Object Cache
o ideální je mix page level a object cache
● Transients API
● WP_Object_Cache a wp_cache funkce
o dropins: object-cache.php, advanced-cache.php
● Cachování v post_meta tabulce

Contenu connexe

Tendances

Veeam v10 jak na to
Veeam v10 jak na toVeeam v10 jak na to
Veeam v10 jak na toVladan Laxa
 
Zabezpečení WordPressu
Zabezpečení WordPressuZabezpečení WordPressu
Zabezpečení WordPressuRadek Kucera
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Vladimír Smitka
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnostiVladimír Smitka
 
Jelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deploymentJelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deploymentVaclav Chalupa
 
Optimalizace výkonu webových aplikací
Optimalizace výkonu webových aplikacíOptimalizace výkonu webových aplikací
Optimalizace výkonu webových aplikacíMichal Špaček
 
Základní pluginy pro WordPress
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPressRadek Kucera
 
Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůVladimír Smitka
 
Zmrakování pružné včely
Zmrakování pružné včelyZmrakování pružné včely
Zmrakování pružné včelyfersman
 
Optimalizace rychlosti stránek
Optimalizace rychlosti stránekOptimalizace rychlosti stránek
Optimalizace rychlosti stránekKeyup
 
Prezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuPrezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuSUPERKODERS
 
WordPress "root" skripty - WP Weekend #3
WordPress "root" skripty - WP Weekend #3 WordPress "root" skripty - WP Weekend #3
WordPress "root" skripty - WP Weekend #3 Brilo Team
 
Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceVladimír Smitka
 
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 201410 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014Radek Kucera
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3Vladimír Smitka
 

Tendances (20)

Veeam v10 jak na to
Veeam v10 jak na toVeeam v10 jak na to
Veeam v10 jak na to
 
Zabezpečení WordPressu
Zabezpečení WordPressuZabezpečení WordPressu
Zabezpečení WordPressu
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnosti
 
Jelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deploymentJelastic & Red Hat OpenShift - app deployment
Jelastic & Red Hat OpenShift - app deployment
 
Výkon WordPress
Výkon WordPressVýkon WordPress
Výkon WordPress
 
Optimalizace výkonu webových aplikací
Optimalizace výkonu webových aplikacíOptimalizace výkonu webových aplikací
Optimalizace výkonu webových aplikací
 
Základní pluginy pro WordPress
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPress
 
Ops2 nginx
Ops2   nginxOps2   nginx
Ops2 nginx
 
Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
 
Zmrakování pružné včely
Zmrakování pružné včelyZmrakování pružné včely
Zmrakování pružné včely
 
Optimalizace rychlosti stránek
Optimalizace rychlosti stránekOptimalizace rychlosti stránek
Optimalizace rychlosti stránek
 
Prezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webuPrezentace jak zrychlit načítání webu
Prezentace jak zrychlit načítání webu
 
Instalace WordPress
Instalace WordPressInstalace WordPress
Instalace WordPress
 
Veeam Granulární obnova
Veeam Granulární obnovaVeeam Granulární obnova
Veeam Granulární obnova
 
WordPress "root" skripty - WP Weekend #3
WordPress "root" skripty - WP Weekend #3 WordPress "root" skripty - WP Weekend #3
WordPress "root" skripty - WP Weekend #3
 
Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konference
 
View 6 2015
View 6 2015View 6 2015
View 6 2015
 
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 201410 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3
 

Similaire à Principy cachování ve WordPressu

Architektura databáze Oracle
Architektura databáze OracleArchitektura databáze Oracle
Architektura databáze OracleTomas Solar
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace Jan Hřídel
 
Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)Tomas Vondra
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...Jaroslav Prodelal
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...Jaroslav Prodelal
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devuVašek Purchart
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Péhápkaři
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 
Revoluce v cloudu: první autonomně řízená databáze na světě
Revoluce v cloudu: první autonomně řízená databáze na světěRevoluce v cloudu: první autonomně řízená databáze na světě
Revoluce v cloudu: první autonomně řízená databáze na světěMarketingArrowECS_CZ
 
RabbitMQ a ElasticSearch v Previu
RabbitMQ a ElasticSearch v PreviuRabbitMQ a ElasticSearch v Previu
RabbitMQ a ElasticSearch v PreviuPéhápkaři
 
Technologie užívané při vývoji velkých e-shopů
Technologie užívané při vývoji velkých e-shopůTechnologie užívané při vývoji velkých e-shopů
Technologie užívané při vývoji velkých e-shopůPeckaDesign.cz
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduJan Kodera
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemMartin Cerveny
 

Similaire à Principy cachování ve WordPressu (20)

Architektura databáze Oracle
Architektura databáze OracleArchitektura databáze Oracle
Architektura databáze Oracle
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace
 
Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)Checkpoint (CSPUG 22.11.2011)
Checkpoint (CSPUG 22.11.2011)
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam B&R / 3.10...
 
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
Webinář: Ochrana dat ve virtuálním prostředí pomocí nástroje Veeam Backup & R...
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devu
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
Revoluce v cloudu: první autonomně řízená databáze na světě
Revoluce v cloudu: první autonomně řízená databáze na světěRevoluce v cloudu: první autonomně řízená databáze na světě
Revoluce v cloudu: první autonomně řízená databáze na světě
 
RabbitMQ a ElasticSearch v Previu
RabbitMQ a ElasticSearch v PreviuRabbitMQ a ElasticSearch v Previu
RabbitMQ a ElasticSearch v Previu
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
Technologie užívané při vývoji velkých e-shopů
Technologie užívané při vývoji velkých e-shopůTechnologie užívané při vývoji velkých e-shopů
Technologie užívané při vývoji velkých e-shopů
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
TNPW2-2011-03
TNPW2-2011-03TNPW2-2011-03
TNPW2-2011-03
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí cloudu
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise System
 

Principy cachování ve WordPressu

  • 1. Principy cachování ve WordPressu David Biňovec david.binovec@gmail.com david_binovec@parade.com http://david.binda.cz
  • 2. Obsah přednášky ● Co je to cache, co cachovat ● Možnosti cachování - PHP a MySQL o Memcached, Alternative PHP Cache (APC) o MySQL Query Cache ● Page level a Object Cache ● Jak je WordPress na cache připravený o Transients API o WP_Object_Cache a wp_cache funkce o oEmbed cache
  • 3. Co je to Cache a co cachovat? ● Ukládání dřívě získaných dat, nebo jejich kopie, tak, aby byly při dalších operacích k dispozici rychleji ● Cachovat lze skoro vše o celé stránky a objekty o výsledky dotazů do externí API, náročné výpočty ... ● … a ještě něco navíc o MySQL Query Cache o OpCode
  • 4. MySQL Query Cache ● pouze identické a deterministické SELECT dotazy ● přetvrvává mezi jednotlivými sessions ● smazání relevantních dotazů po změně tabulky ● nedistribuovaná
  • 5. Cache engines ● Memcached o distribuovaná (server dostupný přes telnet) o key - value pairs uložené v paměti serveru o PECL rozšíření pro PHP (memcached/memcache) ● Alternative PHP Cache (APC) o Opcode i user cache (PHP <= 5.4), APCu (PHP 5.5) o nedistribuovaná ● Statický soubor o např. mod_rewrite (WP Super Cache), CDN
  • 6. Page Level vs. Object Cache ● Page level cache (např. WP Super Cache) o ukládá pouze celé stránky o každá stránka se musí vygenerovat celá sama o sobě se všemi DB, API a dalšími dotazy o obvykle nefunguje pro přihlášené ● Object cache (APC, Memcached, W3TC) o znovupoužitelná pro generování více stránek o funguje i pro přihlášené uživatele o použitelná také v administraci WordPressu
  • 7. Page Level Cache ● HTML soubory uložené na disku o načítání pomocí PHP či mod_rewrite (WP Super Cache) ● memcached (Batcache) o lze využít i bez použití PHP přímo na serveru (NginX, Apache ...) ● CDN o cloudflare (W3TC) o jakýkoli jiný (WP Super Cache)
  • 9. WP Super Cache - mod_rewrite
  • 10. Object Cache ● cachujeme znovupoužitelné objekty o znovupoužitelné v rámci jednoho requestu o a hlavně znovupoužitelné napříč requesty ● objekt tvoří jeden, ale i více SQL dotazů o je výsledkem mnoha funkcí, metod … ● Například: o WP_User (capabilities, user_meta) o WP_Post ...
  • 11. Jak je WP připravený na cachování ● Transients API o set_transient, get_transient, delete_transient o set_site_transient, get_site_transient … ● WP_Object_Cache třída a wp_cache funkce o wp-includes/cache.php  wp_cache_add, wp_cache_set, wp_cache_replace  wp_cache_get  wp_cache_delete, wp_cache_flush
  • 12. Transients API ● dočasné ukládání cachovaných dat ● defaultně využívá tabulku wp_options o add_option s parametrem autoload = “no”  pokud nemá expiraci, pak autoload = “yes” o přidává dva řádky do tabulky  hodnotu transient  maximální expirační čas (nikoli garantovaný)
  • 13. ● v jádře je implementace ukládající data do globální proměnné o z podstaty věci, defaultně, jen po dobu session ● má význam například při opakovaném dotazu do zatabáze o lze s klidným svědomím opakovaně volat například get_post_meta bez přetěžování databáze WP_Object_Cache
  • 14. Kde se WP_Object_Cache používá ● get_metadata (post, user, comment ...) ● get_option (autoload options) ● get_post, get_user, get_comment, get_term ● transients ● ...
  • 15. wp_cache funkce ● wp_cache_set($key, $data, $group, $expire) o defaultně bez expirace ($expire = 0) ● wp_cache_get( $key, $group ) o group umožnuje používat stejní klíče pro různé skupiny
  • 16. Externí WP_Object_Cache - dropins ● dropins o wp-content/advanced-cache.php o wp-content/object-cache.php ● object-cache.php o zamezí načtění souboru wp-includes/wp_cache.php o znovu definuje WP_Object_Cache i wp_cache funkce o využívá libovolný externí cachovací engine  memcache, APC, souborvý systém ...
  • 17. Cachování v post_meta tabulce ● oEmbed post_meta cache v jádře WP
  • 18. WordPress Cachovací Pluginy ● WP Super Cache http://wordpress.org/plugins/wp-super- cache/ o page level cache využívající mod_rewrite ● W3 Total Cache http://wordpress.org/plugins/w3-total-cache/ o několik object-cache enginů ● Batcache http://wordpress.org/plugins/batcache/ ● object-cache.php dropins http://wordpress.org/plugins/memcached/ http://wordpress.org/plugins/apc/
  • 19. Principy Cachování ve WP - Shrnutí ● Memcached, APC, MySQL Query Cache ● Page level vs. Object Cache o ideální je mix page level a object cache ● Transients API ● WP_Object_Cache a wp_cache funkce o dropins: object-cache.php, advanced-cache.php ● Cachování v post_meta tabulce