Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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)
...
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 dis...
MySQL Query Cache
● pouze identické a deterministické SELECT
dotazy
● přetvrvává mezi jednotlivými sessions
● smazání rele...
Cache engines
● Memcached
o distribuovaná (server dostupný přes telnet)
o key - value pairs uložené v paměti serveru
o PEC...
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í ...
Page Level Cache
● HTML soubory uložené na disku
o načítání pomocí PHP či mod_rewrite (WP Super
Cache)
● memcached (Batcac...
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...
Jak je WP připravený na cachování
● Transients API
o set_transient, get_transient, delete_transient
o set_site_transient, ...
Transients API
● dočasné ukládání cachovaných dat
● defaultně využívá tabulku wp_options
o add_option s parametrem autoloa...
● 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ýzn...
Kde se WP_Object_Cache používá
● get_metadata (post, user, comment ...)
● get_option (autoload options)
● get_post, get_us...
wp_cache funkce
● wp_cache_set($key, $data, $group, $expire)
o defaultně bez expirace ($expire = 0)
● wp_cache_get( $key, ...
Externí WP_Object_Cache - dropins
● dropins
o wp-content/advanced-cache.php
o wp-content/object-cache.php
● object-cache.p...
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í ...
Principy Cachování ve WP - Shrnutí
● Memcached, APC, MySQL Query Cache
● Page level vs. Object Cache
o ideální je mix page...
Upcoming SlideShare
Loading in …5
×

Principy cachování ve WordPressu

1,500 views

Published on

Slidy k přednášce prezentované na 2. WordPress konferenci - 17.5.2014, Hluboká nad Vlatvou

Published in: Technology
  • Be the first to like this

Principy cachování ve WordPressu

  1. 1. Principy cachování ve WordPressu David Biňovec david.binovec@gmail.com david_binovec@parade.com http://david.binda.cz
  2. 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. 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. 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. 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. 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. 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)
  8. 8. Jak zacachovat stránku ve WP
  9. 9. WP Super Cache - mod_rewrite
  10. 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. 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. 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. 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. 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. 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. 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. 17. Cachování v post_meta tabulce ● oEmbed post_meta cache v jádře WP
  18. 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. 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

×