Memcached är en distribuerad minnescache som används för att lagra data temporärt i minnet. Detta gör att det blir snabbare att hämta data från minnet än från en databas eller annan permanent lagringsplats.
Memcached är utformat för att kunna användas av flera olika program på samma gång, vilket gör det till ett bra val för system med hög belastning där det finns behov av att hantera många förfrågningar på ett snabbt och effektivt sätt.
Det finns många olika sätt att använda Memcached med PHP. En möjlighet är att använda en PHP-extension som ger tillgång till Memcached-funktionaliteten. Detta gör det möjligt att använda Memcached-funktionerna direkt i PHP-koden genom att anropa olika funktioner.
En annan möjlighet är att använda det äldre klientbiblioteket PHP Memcache, för att kommunicera med en Memcached-server. Detta gör det möjligt att använda Memcached från PHP utan att behöva installera en PHP-extension, men det kräver att man skriver lite mer kod för att hantera anslutningar och förfrågningar till Memcached-servern.
Det finns alltså både ett äldre bibliotek vid namn Memcache och ett mer utvecklad bibliotek vid namn Memcached som blev officiellt under 2015.
Visst stöd hos svenska webbhotell
Det finns några få webbhotell som har stöd för Memcached vilket gör det möjligt för dig som utvecklar webbapplikationer att använda det även i en delad miljö. Webbhotellen Oderland och Egensajt är exempel på alternativ som erbjuder detta.
Webbhotell som har kontrollpanelen cPanel har möjligheten att själva välja vilka PHP-bibliotek som ska existera och vilken PHP-version som köras på webbhotellskontot.
Även om det oftast går att aktivera memcahced-biblioteket så ger det bara PHP tillgång att kommunicera med Memcached. Servern behöver i sin tur även köra en uppsättning Memcached som du kan ansluta till och använda.
Exempelkod i PHP
Här är ett exempel på hur man kan använda memcached-biblioteket (som är den officiella PHP-extensionen för Memcached) för att spara och hämta data från Memcached:
// Skapa en ny Memcached-instans
$memcached = new Memcached;
// Anslut till Memcached-servern på localhost:11211
$memcached->addServer('localhost', 11211);
// Spara en sträng i Memcached under nyckeln "greeting"
$memcached->set('greeting', 'Hello, world!', 60);
// Hämta strängen från Memcached
$greeting = $memcached->get('greeting');
echo $greeting; // Skriver ut "Hello, world!"
I det här exemplet ansluts vi till Memcached-servern på localhost:11211 (som är standardporten för Memcached), sparar en sträng i Memcached under nyckeln ”greeting” och hämtar sedan strängen från Memcached.
Obs! Om du vill använda memcached-biblioteket för att kommunicera med Memcached måste du se till att memcached-biblioteket är installerat och aktiverat på din server. I annat fall kommer ett fel som ”Fatal error: Uncaught Error: Class ’Memcached’ not found” att kastas.