Memcached til session- og objektcaching
Brug Memcached som et distribueret in-memory-lager til PHP-objekter.
Memcached til session- og objektcaching er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.
Hvad er Memcached?
Memcached er et højtydende, distribueret nøgle-værdi-lager i hukommelsen. Det bruges i stor udstrækning til cachelagring af resultater fra databaseforespørgsler og sessionsdata i PHP-applikationer.
Installation
Installer Memcached-serveren og PHP-udvidelsen.
# Ubuntu/Debian:
$ apt install memcached php-memcached
$ service memcached start
# Verify:
$ php -m | grep memcachedOpret forbindelse til Memcached
Opret en Memcached-instans, og tilføj en eller flere servere.
<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
// Multiple servers (distributed caching):
$mc->addServers([
["192.168.1.10", 11211],
["192.168.1.11", 11211],
]);Grundlæggende cacheoperationer
Indstil, hent, slet og erstat cacheposter.
<?php
// Set with TTL:
$mc->set("product:1", $productData, 600); // 10 min
// Get:
$product = $mc->get("product:1");
if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
$product = fetchFromDB(1);
$mc->set("product:1", $product, 600);
}
// Delete:
$mc->delete("product:1");Sessionlagring med Memcached
Gem PHP-sessioner i Memcached, så de hurtigt kan deles på tværs af flere webservere.
# php.ini:
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"Laravel-integration med Memcached
Konfigurer og brug Memcached som Laravels cachedriver.
# .env
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1
// Usage is identical to Redis via Cache facade:
Cache::put("key", $value, 300);
$value = Cache::get("key");Memcached sammenlignet med Redis
Memcached: enklere, flertrådet og udelukkende i hukommelsen (ingen persistens). Redis: flere datatyper, valgfri persistens (AOF/RDB), pub/sub og klynge. Til ren cachelagring har de to tilsvarende ydeevne. Redis foretrækkes generelt til nye projekter.
Distribueret cachelagring
Memcached fordeler naturligt nøgler på flere servere ved hjælp af konsistent hashing. Det giver horisontal skalering, efterhånden som trafikken vokser.
Atomisk CAS (sammenlign-og-byt)
Memcached understøtter CAS-operationer, så en værdi kun opdateres sikkert, hvis ingen anden klient har ændret den, siden du sidst læste den.
<?php
$mc->get("counter", null, $cas);
$mc->cas($cas, "counter", $newValue, 60);TTL-begrænsninger
Memcached-TTL er begrænset til højst 30 dage. Værdier på over cirka 1 MB afvises. Hold cacheværdier små, og serialiser dem effektivt.
Overvågning
Brug memcached-tool 127.0.0.1:11211 stats til at kontrollere hitrate, hukommelsesforbrug og bortvisninger. En lav hitrate eller et højt antal bortvisninger betyder, at cachen er for lille.
Opsummering
Memcached er velegnet til enkel, distribueret cachelagring af objekter og sessioner. I Laravel skal du indstille CACHE_DRIVER=memcached. Til produktion med flere funktioner bør du foretrække Redis.
Hurtigt tjek
Hvad er én vigtig forskel mellem Memcached og Redis?
Lær PHP med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 49
- Lektioner
- 195
Ofte stillede spørgsmål
Er lektionen “Memcached til session- og objektcaching” gratis?
Ja — hele teksten til “Memcached til session- og objektcaching” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Memcached til session- og objektcaching”?
Brug Memcached som et distribueret in-memory-lager til PHP-objekter. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på PHP Academy?
Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Memcached til session- og objektcaching”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne PHP Academy-lektion?
Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvorfor caching er vigtigt i PHP
- Redis som PHP-cachebackend
- Memcached til session- og objektcaching
- Mønstre for cache-invalidering