PHP Academy · Lektion

Memcached til session- og objektcaching

Brug Memcached som et distribueret in-memory-lager til PHP-objekter.

Lektion 3 af 413 trin

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 memcached

Opret 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?

Gratis at komme i gang

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

  1. Hvorfor caching er vigtigt i PHP
  2. Redis som PHP-cachebackend
  3. Memcached til session- og objektcaching
  4. Mønstre for cache-invalidering
← Tilbage til PHP Academy