Tovább a tartalomhoz

WPML tartós gyorsítótárral: Redis és Memcached

Mi a tartós objektum-gyorsítótár, és hogyan kapcsolod be Redisszel vagy Memcached-del a WPML-es oldalad gyorsításához.

A többnyelvű oldalak sok adatbázis-lekérdezést használnak, ezért sokat nyernek a tartós objektum-gyorsítótáron (persistent object cache). A WPML kódját úgy fejlesztették, hogy bekapcsolt tartós gyorsítótárnál észrevehetően gyorsabb legyen.

A WordPress szinte mindent gyorsítótáraz. Ha egy téma vagy bővítmény többször kér le adatot (például bejegyzéseket), az adatok a memóriába kerülnek, hogy ne kelljen újra az adatbázishoz fordulni. Alapesetben ez a gyorsítótár csak egyetlen oldalbetöltés idejéig él, nem tartós. A következő kérésnél minden újra kezdődik: új adatbázis-hívások, majd a memóriabeli gyorsítótár használata.

A Redis és a Memcached olyan szerveroldali programok, amelyeket a tárhelyszolgáltató telepít. Ezek az oldalbetöltések között is megőrzik a gyorsítótárat, ami a WordPressnek és a WPML-nek is jelentős gyorsulást ad. A használatukhoz a WordPressnek külön kiegészítő vagy bővítmény kell.

A Redis a legnépszerűbb szerveroldali tartós gyorsítótár. A használatához a tárhelyszolgáltatónak engedélyeznie kell a szerveren.

A legegyszerűbb mód a Redis Object Cache bővítmény telepítése. Aktiválás után menj a Settings → Redis oldalra, és kattints az Enable Object Cache gombra.

A Memcached másik tartós gyorsítótár-megoldás, de kevés PHP-tudás kell hozzá. A wordpress.org-os Memcached-bővítmények többsége elavult, ezért nem ajánlottak. Kivétel a W3 Total Cache, amely dobozból támogatja a Memcachedet.

Követelmények: a szerver támogassa a Memcachedet, és a PHP-bővítmény legyen telepítve.

  1. Töltsd le az SG Optimizer bővítmény memcached.tpl sablonfájlját a bővítmény wordpress.org-os tárolójából (plugins.svn.wordpress.org/sg-cachepress/trunk/templates/memcached.tpl).
  2. Nevezd át object-cache.php-ra.
  3. Töltsd fel a wp-content mappába.

A SiteGround magától beállítja a helyes hostot és portot, de saját szervernél ezt neked kell megtenned. Az object-cache.php konstruktorában keresd meg a $memcached_servers tömböt:

$memcached_servers = array(
'default' => array(
'@changedefaults@'
)
);

Cseréld a @changedefaults@ szöveget a szervered címére és portjára (ezeket a tárhelyszolgáltatótól kapod). Példa a kész beállításra:

$memcached_servers = array(
'default' => array(
'memcached:11211'
)
);

Ezután az objektum-gyorsítótár tartós lesz: a további oldalkérések újra felhasználják a gyorsítótárazott adatokat.

Hibakereséshez add a következő kódot a témád functions.php fájljához. Az oldal láblécében megjeleníti a Memcached tevékenységének adatait:

if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
add_action( 'wp_footer', function() {
$GLOBALS['wp_object_cache']->stats();
} );
}

A WPML saját gyorsítótárát az ICL_DISABLE_CACHE konstanssal lehet kikapcsolni (lásd a WPML-konstansok fejezetet).

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások