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