Object gyorsítótár wordpress - wp magazin

Cikkünkben az alapjait WordPress caching röviden említettük cache tárgyak. Ebben a cikkben fogjuk vizsgálni az összes lehetőséget WP_Object_Cache osztályban. néhány árnyalatok, és miért objektum-gyorsítótár fontos szerepet játszik a teljesítménye oldalak by WordPress.

Mi az objektum-gyorsítótár

Object gyorsítótár WordPress (objektum cache), egy beépített mechanizmus, a rendszer, amely lehetővé teszi, hogy tárolja az adatokat bármilyen típusú, és az információkat kapni, ha szükséges. Ezt a gyorsítótárat Az eredmények tárolására végrehajtása összetett műveleteket.

Ahhoz, hogy megértsük a működését a tárgy cache WordPress, fontolja meg egy egyszerű példát egy függvény, amely elvégzi az adatbázis lekérdezése:

Ha ezt a funkciót több alkalommal, minden egyes alkalommal, amikor olyan kérelmet, hogy az adatbázisban:

ize () függvény egyszerűen gyorsítani a gyorsítótár objektumok WordPress, azáltal, hogy egy lekérdezés eredményét cache az alábbiak szerint:

Lehetőségek a cache tárgyak és azok paramétereit nézzük később. Fontos megérteni, hogy az első rész a függvény megkeresi a tárolt érték az objektum cache, és kiadja, ha megállapítást nyer. Ha az érték nem volt a cache, akkor megkapjuk az adatbázis-lekérdezések a cache, és visszaadja az eredményt.

Így csak az első hívást a function ize () lefuttatja a lekérdezést az adatbázisban, és az azt követő hívások visszatér eredmények sokkal gyorsabban használja a cache:

Ha a válasz „az egyik,” az elv a cache objektumokat tanult. Azonban a helyes válasz itt a „nulla” sajátosságai miatt a lehetőségek cache tárgyak WordPress. Részletek lesz szó a végén.

Az együttműködés fő célja caching

Object gyorsítótárral WordPress végre osztályban WP_Object_Cache. de hozzáférni könnyen a módszereket kiegészítő funkciókat.

wp_cache_get ()

wp_cache_get () függvény beolvassa az érték az objektum cache egy adott kulcsot. Ha ez a kulcs érték nem létezik, wp_cache_get () függvény a false. paraméterek:

  • $ Kulcs - kulcs, amelyre keres
  • $ Group - olyan csoport, amelyet keresett, ha egy csoport nincs megadva kifejezés egy alapértelmezett csoportot «alapértelmezett», a paraméter nem kötelező

A wp_cache_get () függvény, van még két további paramétereket, amelyeket nagyon ritkán.

A paraméter elfogadja $ talált változót referencia, és beállítja igaz vagy hamis. attól függően, hogy az értéket találtak a cache-e vagy sem. Ez a lehetőség akkor hasznos, ha a tárolt érték az objektum cache lehet logikai hamis.

wp_cache_add ()

wp_cache_add () függvény értéket ad az objektum cache egy adott kulcsot. Ha az érték az azonos kulcs már létezik a cache WordPress oldalakon, a funkció wp_cache_add () semmit sem, és false. paraméterek:

  • $ Kulcs - egyedi kulcs, hogy az érték megtalálható
  • $ Adatok - A tárolt érték az objektum cache
  • $ Group - egy csoport, amely lehetővé teszi, hogy ugyanazt a kulcsot egy másik összefüggésben, az alapértelmezett érték - «alapértelmezett», a paraméter nem kötelező
  • $ Lejár - a maximális élettartam értéket a cache csak bizonyos külső tárgy caching dugó, a paraméter nem kötelező

wp_cache_set ()

wp_cache_set () funkciója hasonló wp_cache_add (), és úgy az azonos paraméterek. Úgy tartja a beállított értéket a cache WordPress tárgyakat. Az egyetlen különbség az, hogy wp_cache_set () függvény beállítja az értéket a cache, akkor is, ha már létezik. Ha az értékek a cache nincs jelen, wp_cache_set () felvenni.

wp_cache_replace ()

wp_cache_replace () funkció is hasonló wp_cache_add () és wp_cache_set (). és tart azonos paraméterekkel. wp_cache_replace () függvény, a jelenlegi érték az objektum cache. Ez abban különbözik az a tény, hogy ha az érték nem található az objektum cache, az új érték a függvény nem lesz hozzá.

wp_cache_delete ()

wp_cache_delete () függvény eltávolítja az érték a tárgy cache egy adott kulcsot. A paraméterek ugyanazok, mint a wp_cache_get () függvény. A függvény visszatérési értéke true, ha az érték talált és eltávolított, egyébként hamis. például:

wp_cache_incr () és wp_cache_decr ()

wp_cache_incr () és wp_cache_decr () lehetővé teszi, hogy növelje vagy csökkentse az értéket a tárgy cache. Ezek a funkciók különösen hasznos, amikor bármilyen számlálók. példák:

wp_cache_flush ()

wp_cache_flush () függvény visszaállítja a teljes cache WordPress tárgyakat. Ezzel a funkcióval áll, rendkívül óvatosan, mert ez okozhat csökkent teljesítményt WordPress.

Az állandóság az objektum cache

Az egyik legfontosabb pillanatait WordPress objektum-gyorsítótár, hogy az alapértelmezett gyorsítótár mulandó. Ez azt jelenti, hogy minden érték a cache csak egy lekérdezés, és a következő kérés a WordPress oldalakon, tárgy cache ismét üres.

Első pillantásra ez a cache nem túl hasznos, de ha számít például, hogy hány alkalommal egy lekérdezést WordPress hajtja végre get_option () függvényt. előnyeit caching tárgyak nyilvánvalóvá válik.

Szintén WordPress lehetőség van használni a külső tároló cache tárgyak, mint például Memcached APC szerver, a cache oldalak WordPress állandóvá válik. Ez azt jelenti, hogy a következő címet az oldalon, a korábban cache értékek nem állnak rendelkezésre.

Külső állandó gyorsítótár tárgyak

Külső / állandó gyorsítótár objektumok (külső / perzisztens objektum cache) WordPress realizált kizárólag formájában plug-in, mint például:

Ezek a bővítmények használatát teszi lehetővé a Memcached kiszolgálók, az APC vagy Redis illetve az objektum-gyorsítótár WordPress. Ha egy külső caching szükségességét, hogy csak van egy elképzelése arról, hogy mennyi memóriát amire szükség van a leggyakoribb tárgyak helyes konfigurálásához a szerverre.

Ha valaki egy plugin a WordPress, amelynek viselkedése függ a jelenléte egy külső tárgy gyorsítótárat használ wp_using_ext_object_cache () függvényt:

Ebben az egyszerű példában az értéket tárolja a cache objektum csak akkor, ha a cache külső és állandó. Ha egy bővítmény nem caching külső tárgyak, lehetőség lesz használva.

Egy új fogalom a „helyi cache tárgyak” jelenik meg, ha a munka egy külső tárgy caching dugó. Ez azt jelenti, hogy amikor a második kérelmet ugyanazt a kulcsot, tárgy cache nem fog újabb kérelmet a Memcached szerver, és megadja az értékét a helyi cache.

Néhány külső bővítmények végre cache-opció $ erő, amellyel befolyásolni ezt a viselkedést.

A legtöbb objektum-gyorsítótár funkció egy paraméterének $-csoport. amely lehetővé teszi, hogy ugyanazt a kulcsot más összefüggésben.

Elméletileg ez csak egy opcionális előtag a legfontosabb, de a gyakorlatban csoportok nagy jelentőségű, ha dolgozik WordPress hálózati üzemmód (több gépen), illetve a külső plug-inek caching tárgyakat.

A lényege WordPress használt számos különböző csoportok, például:

Csoportjai WordPress vannak osztva a globális és a globális, valamint az állandó és nem állandó.

globális csoportok

Globális csoportok WordPress csak akkor relevánsak, ha dolgozik WordPress hálózati mód. Alapértelmezésben az objektum cache egészíti előtagot azonosítóját a jelenlegi helyén (blog id) az egyes fő az objektum cache.

A legnyilvánvalóbb példa a globális csoport WordPress egy csoportja «felhasználók», mert WordPress felhasználóknak vesznek a világ egyik asztalnál, függetlenül a jelenlegi helyén a hálózatban. További példák a globális csoportok a következők: «témák», «blog-részletek», «helyspecifikus lehetőségek» «webhely tranziens».

Ha szükséges, egy listát a globális csoportokat, felveheti a saját csoport segítségével wp_cache_add_global_groups () függvényt:

állandó csoport

Állandó csoport egy cache WordPress oldalak - ezek a csoportok, amelyek olyan külső állandó objektum-gyorsítótár, ha a plugin. Hacsak nincs másképpen meghatározva, az egyes csoportok az alapértelmezett állandó, és nem tartalmazzák a állandócsoport használhatja wp_cache_add_non_persistent_groups () függvényt:

Így, amikor működik a dugót a külső cache, például memcached Object Cache és értékek tárolására a csoportban «én-csoport», az értéke csak akkor lesz tárolva a helyi objektum cache, és nem marad a Memcached szerver.

Az alapértelmezett WordPress nucleus több nem állandó definiált csoportok: «megjegyzést», «számít», «témák» és «plugins». Minden más csoportok, köztük a «alapértelmezett» csoport WordPress állandó.

Gyorsítótár letiltása tárgyak

Ha szükség van, hogy az adatokat a WordPress beépített funkciója, de ez nem menti az adatokat a cache, akkor átmenetileg tiltsa kiegészítve a cache segítségével wp_suspend_cache_addition () függvényt. Ez hasznos lehet például, ha az importáló nagy mennyiségű adat:

Hasonló módon, a wp_suspend_cache_invalidation (), akkor letiltja az alaphelyzetbe a cache, bár jelenleg ez a funkció csak a gyorsítótár bejegyzések, és csak akkor, ha megpróbálják visszaállíthatja azt clean_post_cache () függvényt.

Object cache és opciók

Lehetőségek WordPress egy különleges kapcsolat a cache tárgyakat. Ez könnyen belátható, hogy a végrehajtás get_option () függvényt. amely az első hívás hatására a beépített wp_load_alloptions () függvényt. ami viszont betölti az összes jelölt opciók autoload WordPress adatbázisban.

Első alkalommal get_option () függvény WordPress nucleus előtt töltődik mi aktív téma, és ezért, amikor hivatkozva get_option (), hogy a webhely nevét, leírását stb kérések nem lesz semmilyen adatbázisban:

Ez a kód nem hajtja végre egyetlen lekérdezést WordPress adatbázisban.

Emiatt a fejlesztők és a WordPress plugin nem kell félni az ilyen funkciók, mint a get_option (). bloginfo (). vagy get_post_meta () (hasonló megközelítést caching) és a tanácsot, hogy „eltörlik a get_option () annak érdekében, hogy gyorsítsák fel a site” biztonságosan lehet figyelmen kívül hagyni.

következtetés

A hibakereső probléma a cache tárgyakat a WordPress plugin segít népszerű Debug Bar.

Object gyorsítótár wordpress - wp magazin

Munka a cache tárgyakat a Debug Bar

A Debug Bár, láthatjuk a statisztikai alkalmazások az objektum cache és memória által elfogyasztott minden csoport, és a jelenlétében egy külső tárgy gyorsítótárat Debug Bár akkor minden hívás egy külső szerverre.