Förklaring av cachelagring
Lär dig allt om de olika cachetyperna som finns tillgängliga för PHP, webbplatser och WordPress i synnerhet.
Zend Opcode, JIT & WP Object Cache
OPcache
OPcache förbättrar PHP-prestanda genom att arkivera förkompilerad skriptbytekod i delat minne, vilket eliminerar behovet för PHP att ladda och tolka skript vid varje begäran. Det finns också en särskild buffert för att lagra oföränderliga strängar så att de kan återanvändas av sina pekare för alla förekomster av samma sträng.
JIT
JIT kan ge prestandaförbättringar genom att kompilera och lagra de fullständiga eller ofta anropade delarna av en PHP-applikation som CPU-maskinkod och köra den direkt, vilket kringgår Zend VM och dess processoverhead.
WP Objekt Cache
WordPress Object Cache används för att spara på anrop till databasen. Objektcachen lagrar alla cachedata i minnet och gör cacheinnehållet tillgängligt med hjälp av en nyckel, som används för att namnge och senare hämta cacheinnehållet.
WP Object Cache är en flyktig cache som endast är giltig för den aktuella begäran.
Beständig objektcache (persistent)
Beständiga cacheminnen lagrar cachelagrade data i en beständig lagring så att de kan återanvändas flera gånger utan att uppdatera ursprungliga data. Det är tekniskt möjligt att använda en databas för lagring, men minneslagring är det enda effektiva alternativet.
APCu-cache
APCu (APC User Cache) är en cachelösning på användarnivå för PHP som cachar data i serverns minne. APCu är den snabbaste beständiga objektcachen som finns tillgänglig. Det är den enda cachen som kan lagra objekt utan serialisering.
Redis Cache
Redis är en snabb databas i minnet som använder serverns delade minne. Om du har flera WordPress installerade på ett delat värdkonto delar alla dessa installationer samma minne. OBS, detta innebär att alla användare på en webbserver kan se all data som ligger i redis. Man behöver därför vara noga med att inte känslig data lagras där, t.ex. sessions-data.
Lagring av icke-skalära data i en databas kräver serialisering, vilket är ett extra steg när du lagrar/hämtar data. Därför är Redis långsammare än APCu men snabbare än ingen cache. Redis kan nås via TCP/IP- eller UNIX-socket – vilket är den snabbare av de två.
Memcached Cache
Memcached är ett minnesinternt nyckel/värde-lager för små bitar av godtyckliga data (strängar, objekt) från resultat av databasanrop, API-anrop eller sidrendering.
Lagring av icke-skalära data i en databas kräver serialisering, vilket är ett extra steg när du lagrar/hämtar data. Därför är Memcached långsammare än APCu men snabbare än ingen cache. Memcached kan nås via TCP/IP- eller UNIX-socket – vilket är den snabbare av de två.
Webbläsarcache och nätverk för innehållsleverans (CDN)
Webbläsarens cache
För att förkorta sidinläsningstiderna cachelagrar webbläsare det mesta av innehållet som visas på en webbsida och sparar en kopia av webbsidans innehåll på enhetens hårddisk. På så sätt, nästa gång användaren laddar sidan, är det mesta av innehållet redan lagrat lokalt och sidan kommer att laddas mycket snabbare.
Cachelagring i webbläsaren är aktiverat som standard, men kan förbättras med hjälp av cachedirektiv på servern. Inställningarna kan antingen ställas in i webbserverkonfigurationen eller i .htaccess-filen (Apache-webbservern).
CDN
Ett CDN (Content Delivery Network) är en distribuerad grupp servrar som cachelagrar innehåll nära slutanvändare.
Ett CDN krävs inte för små statiska webbplatser med en lokal användarbas, men kan drastiskt förbättra laddningstiderna för en global användarbas, eftersom CDN ger lägre latens för varje begäran.
Sammanfattning
Cache |
Fördel |
Aktivering |
Förslag |
---|---|---|---|
OPcache | Stor prestandaförbättring. | Måste vara aktiverat i den php.ini konfigurationsfilen (opcache. enable, opcache. memory_consumption). | Minne min. 128 MB. Strängbuffert minst 8 MB. |
JIT | Förbättring av prestanda. | Måste vara aktiverat i den php.ini konfigurationsfilen (opcode. jit, opcache. jit_buffer_size) och kräver att Apache är aktiverat. | Aktiverad med liten minnesstorlek bör 2 MB räcka. |
WP Objekt Cache | Är en standardklass i WordPress. | Aktiverat som standard. Ingen konfiguration. | Använd en beständig objektcache för att förbättra prestandan. |
|
Stor prestandaförbättring för fram- och bakdel. | Varje lagringsalternativ kräver ett eget tillägg och tjänsten måste vara aktiverad på servern. | 32M är ett bra värde att börja med. Öka den om inte tillräckligt. |
Webbläsarens Cache |
Sparar laddningstid och bandbredd. | Cachelagring i webbläsaren är aktiverat som standard, men kan förbättras med hjälp av cachedirektiv på servern. Inställningarna kan antingen ställas in i webbserverkonfigurationen eller i .htaccess-filen (Apache-webbservern). | Ange Cache-Control-huvudet med ett högt maxåldersvärde. |
CDN | Minskar belastningen på en server och förbättrar svarstiden till klienten. | Kräver ett abonnemang hos en CDN-leverantör som cloudflare eller bunny.net. | Ett CDN krävs inte för små statiska webbplatser med en lokal användarbas, men kan drastiskt förbättra laddningstiderna för en global användarbas, eftersom CDN ger lägre latens för varje begäran. |