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

## Mi a tartós gyorsítótár?

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.

## Redis bekapcsolása

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.

## Memcached bekapcsolása

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.

### Telepítés

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.

### Beállítás

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:

```php
$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:

```php
$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és

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:

```php
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](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-kodolasi-api/) fejezetet).
