Brad Fitzpatrick utvecklade Memcached 2003 för LiveJournals webbplats som ett kraftfullt cachesystem med öppen källkod för att förbättra prestandan hos dynamiska webbapplikationer genom att minska databasbelastningen. Sedan dess har det blivit viktigt för många webbplatser och applikationer med hög trafik. Innan vi installerar Memcached på Debian 12 Bookworm, Debian 11 Bullseye eller Debian 10 Buster, låt oss undersöka några nyckelpunkter om Memcached nedan.
Nyckelfunktioner och fördelar:
- Skalbarhet: Memcached, som hanterar miljontals operationer per sekund, är idealiskt för storskaliga webbapplikationer och tjänster.
- Distribuerad cachelagring: Med en distribuerad cachningsarkitektur tillåter Memcached horisontell skalning över flera servrar, vilket utökar den totala cachekapaciteten.
- Lagring i minnet: Som ett nyckel-värdelager i minnet säkerställer Memcached snabb åtkomst till cachad data, vilket avsevärt minskar latensen i diskbaserade lagringssystem.
- Enkelt API: Memcached tillhandahåller ett enkelt API som stöder olika programmeringsspråk, inklusive PHP, Python, Ruby och andra.
- Cache utgång: Systemet gör det möjligt för utvecklare att ställa in utgångstider för cachelagrade data, vilket underlättar automatisk borttagning av inaktuella eller inaktuella data från cachen.
- Lättvikt: Med minimala CPU- och minneskostnader, körs Memcached effektivt på olika serverkonfigurationer utan att tömma systemresurserna nämnvärt.
- Flexibla datatyper: Memcached rymmer olika datatyper, såsom strängar, heltal och komplexa objekt, vilket gör den mångsidig för olika användningsfall.
Följande guide kommer att leda dig genom installationsprocessen av Memcached på Debian med två metoder: Debians standardförråd för den mest stabila versionen eller nedladdning och kompilering av den senaste binära versionen för de som föredrar att arbeta med den senaste versionen.
Metod 1: Installera Memcached via Default APT Repository
I det här avsnittet kommer vi att installera Memcached på ditt Debian Linux-system med hjälp av APT-pakethanteraren. Detta innebär att du uppdaterar dina systempaket och installerar Memcached med några användbara verktyg.
Uppdatera ditt Debian-system innan Memcached installation
För att säkerställa att du har de senaste paketversionerna och säkerhetsuppdateringarna, börja med att uppdatera ditt Debiansystem. Kör följande kommando:
sudo apt update && sudo apt upgrade
Detta kommando kommer att uppdatera din paketlista och uppgradera föråldrade paket till deras senaste versioner.
Installera Memcached och Libmemcached-verktyg
Debian inkluderar Memcached i sina standardförråd, vilket gör installationen enkel. För att installera Memcached, kör följande kommando:
sudo apt install memcached libmemcached-tools
Detta kommando installerar både Memcached och libmemcached-tools
paket. De libmemcached-tools
paketet innehåller ytterligare kommandoradsverktyg som möjliggör fler interaktions- och hanteringsmöjligheter med Memcached.
Metod 2: Installera Memcached via källan
Det här avsnittet täcker installationen av Memcached på ditt Debiansystem genom att kompilera det från källkoden. Att installera från källan kan vara fördelaktigt om du vill använda den senaste versionen av Memcached eller anpassa byggnaden för specifika krav.
Ladda ner Memcached-källan
Besök först Memcached senaste releasesidan för att hitta den aktuella versionen. Använd följande wget
kommando för att ladda ner det direkt:
wget https://memcached.org/latest
Extrahera Memcached källarkiv
Extrahera sedan den nedladdade källkoden genom att köra följande kommando:
tar -xvf latest
Innan du fortsätter, navigera till den extraherade katalogen. Katalognamnet beror på den nedladdade versionen:
cd memcached-{place version number here}
Byta ut {version_number}
med det faktiska versionsnumret.
Installera initiala paket som krävs för att kompilera Memcached
Innan du kompilerar Memcached måste du installera de nödvändiga byggberoendena. Kör följande kommando för att installera dem:
sudo apt install build-essential libevent-dev gcc make libc6-dev
De installerade paketen tjänar följande syften:
gcc
: En välkänd C-kompilator för Memcached-källfilerna.make
: Dirigerar kompilering.libc6-dev
: Ger en referens till GNU C-biblioteket och rubrikfiler.libevent-dev
: Innehåller utvecklingsfiler för asynkron händelseavisering.
Konfigurera installationen
Använd --prefix=
parameter för att ställa in katalogen där Memcached binär och bibliotek kommer att installeras:
./configure --prefix=/usr/local
Kompilera Memcached källkod
Kompilera den Memcachade källkoden med make
kommando:
make
Testa Memcached genom att bekräfta den aktuella versionen:
./memcached --version
Installera Memcached via kommandot 'make install'
När kompileringsprocessen är klar, installera Memcached genom att köra följande kommando:
sudo make install
Detta kommando installerar Memcached på ditt system, vilket gör det tillgängligt från kommandoraden. För att säkerställa att systemet känner igen de nya biblioteken, kör följande:
sudo ldconfig
Verifiera installationen av Memcached
För att verifiera att Memcached har installerats, kör följande kommando:
memcached -V
Detta kommando kommer att visa den installerade Memcached-versionen, vilket bekräftar att installationen lyckades från källkoden.
Skapa en Systemd-tjänst för Memcached
När du installerar Memcached från källan skapas inte automatiskt en systemd servicefil. Att köra Memcached som en tjänst och hantera den med hjälp av systemctl
måste du skapa en anpassad systemd-tjänstfil för Memcached. Följ dessa steg för att skapa och aktivera tjänsten:
Skapa en ny fil som heter memcached.service
i /etc/systemd/system
katalog med en textredigerare som du väljer. I det här exemplet kommer vi att använda nano
:
sudo nano /etc/systemd/system/memcached.service
Lägg till följande innehåll till memcached.service
fil:
[Unit]
Description=Memcached Service
After=network.target
[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always
[Install]
WantedBy=multi-user.target
Spara filen och avsluta textredigeraren.
Skapa en memcache
användare och grupp för att köra tjänsten säkert:
sudo useradd -r -s /sbin/nologin -U -M memcache
Ladda om systemd-konfigurationen för att känna igen den nya tjänstefilen:
sudo systemctl daemon-reload
Slutligen, starta tjänsten:
sudo systemctl enable memcached --now
Hantera status för Memcachad tjänst
Det här avsnittet kommer att täcka hanteringen av Memcached-tjänsten på ditt Debiansystem. Detta inkluderar att kontrollera tjänstens status, starta och stoppa tjänsten och konfigurera den så att den körs vid systemstart.
Kontrollera status för Memcached Service
Som standard ska Memcached köras efter installationen. För att verifiera dess status, använd systemctl
kommando enligt följande:
systemctl status memcached
Detta kommando visar den aktuella statusen för Memcached-tjänsten.
Starta Memcached-tjänsten
Om Memcached inte körs kan du starta tjänsten med följande kommando:
sudo systemctl start memcached
Aktivera Memcached vid systemstarten
För att säkerställa att Memcached-tjänsten startar automatiskt när ditt system startar, använd följande kommando:
sudo systemctl enable memcached
Stoppa Memcached-tjänsten
Om du behöver stoppa Memcached-tjänsten, använd det här kommandot:
sudo systemctl stop memcached
Inaktivera Memcached vid systemstart
För att förhindra att Memcached-tjänsten startar automatiskt vid systemstart, kör följande kommando:
sudo systemctl disable memcached
Starta om Memcached-tjänsten
Om du behöver starta om Memcached-tjänsten, till exempel efter att ha gjort konfigurationsändringar, använd det här kommandot:
sudo systemctl restart memcached
Verifiera att Memcached lyssnar på standardporten
Slutligen, verifiera att Memcached aktivt lyssnar på den lokala värden med standardporten 11211
. För att bekräfta detta, kör följande kommando:
ps -ef | grep memcached
Utdata ska visa en rad som indikerar att Memcached körs och lyssnar på den angivna porten, liknande följande:
memcache 5934 1 0 09:36 ? 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root 6591 3653 0 09:55 pts/0 00:00:00 grep memcached
Konfigurera Memcached Tips
Det här avsnittet kommer att täcka konfigurering av Memcached-inställningarna genom att redigera memcached.conf
fil. Vi kommer att diskutera att justera den lyssnande IP-adressen, inaktivera UDP och ändra standardminnestilldelningen.
Öppna den Memcachade konfigurationsfilen
Öppna Memcached-konfigurationsfilen som finns på /etc/memcached.conf
med hjälp av en textredigerare, t.ex nano
:
sudo nano /etc/memcached.conf
Användare som kompilerade Memcached från källan kommer att behöva skapa detta när du först öppnar det; filen kommer att vara tom jämfört med APT-metoden; du kan kopiera detta för att komma igång för justering:
# Example memcached.conf file
# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64
# Default port is 11211
-p 11211
# Run the daemon as a background process
-d
# Use syslog logging
-s
# Enable verbose logging
-vv
# Set the maximum number of simultaneous connections
-c 1024
Justera Lyssnande IP-adress
Som standard lyssnar Memcached på IP-adress 127.0.0.1. Kontrollera parametern -l i konfigurationsfilen och se till att den är inställd på rätt IP-adress. Om du behöver ändra IP-adressen, byt ut 127.0.0.1
med den nya IP-adressen:
-l 127.0.0.1
Inaktivera UDP (valfritt)
Om du inte behöver UDP-stöd rekommenderas det att du inaktiverar det. För att inaktivera UDP, lägg till följande rad i konfigurationsfilen:
-U 0
Konfigurera minnesallokering
Standardminnestilldelningen för Memcached är 64MB, vilket kanske inte räcker för större webbplatser. Överväg att justera minnesallokeringen till ett högre värde för att maximera Memcached.
För att ställa in minnesallokering, hitta -m
parametern i konfigurationsfilen och ersätt standardvärdet med önskat belopp (i MB). För att till exempel allokera 2 GB minne ställ in värdet till 2000
:
-m 2000
Justera den här inställningen baserat på din servers tillgängliga minne och krav.
Spara och starta om Memcached
När du har gjort de nödvändiga ändringarna sparar du konfigurationsfilen genom att trycka på CTRL+O
, följd av Y
, och då CTRL+X
för att avsluta textredigeraren. Slutligen, starta om Memcached-tjänsten för att ändringarna ska träda i kraft:
sudo systemctl restart memcached
Ytterligare Memcachad konfigurationsexempel
Utöver de konfigurationsalternativ som behandlats tidigare, finns det flera andra inställningar som du kan justera för att finjustera Memcached enligt dina krav. Här är några exempel, tillsammans med korta demonstrationer:
Ange användaren och gruppen
Memcached körs under en specifik användare och grupp som anges med hjälp av -u
parameter. Till exempel att köra Memcached som memcache
användare lägger du till följande rad i konfigurationsfilen:
-u memcache
Aktivera stora minnessidor
Att aktivera den här funktionen kan förbättra prestandan om ditt system stöder stora minnessidor. För att aktivera stora minnessidor, hitta -L
parametern och avkommentera den (ta bort #
i början av raden):
-L
Konfigurera den maximala artikelstorleken
Memcached har en förinställd maximal objektstorlek på 1 MB. För att öka den maximala artikelstorleken, använd -I
parameter följt av önskad storlek. För att till exempel ställa in den maximala objektstorleken till 5 MB, lägg till följande rad i konfigurationsfilen:
-I 5m
Ställ in maximalt antal trådar
Memcached använder fyra trådar som standard. Du kan använda parametern för att öka eller minska antalet trådar enligt din servers kapacitet och arbetsbelastning. Till exempel, för att ställa in antalet trådar till 8, lägg till följande rad:
-t 8
Konfigurera inaktiv timeout
Memcached stänger automatiskt lediga anslutningar efter en viss period av inaktivitet. För att ändra inaktiv timeout, använd -o
parameter följt av idle_timeout
och önskat antal sekunder. För att till exempel ställa in vilotiden till 600 sekunder (10 minuter), lägg till följande rad:
-o idle_timeout=600
Aktivera SASL-autentisering
Du kan aktivera SASL-stöd (Simple Authentication and Security Layer) om du behöver autentisering för att komma åt din Memcached-server. För att aktivera SASL, hitta -S
parametern och avkommentera den (ta bort #
i början av raden):
-S
Kom ihåg att alltid starta om Memcached-tjänsten efter att ha gjort ändringar i konfigurationsfilen:
sudo systemctl restart memcached
Installera UFW-brandväggen för Memcached
För att säkerställa säkerheten för din Memcached-instans är det viktigt att konfigurera dina brandväggsregler ordentligt. Det här avsnittet kommer att täcka hur du installerar och konfigurerar Uncomplicated Firewall (UFW) för att säkra din Memcached-server.
Kontrollera om UFW är installerat
Låt oss först verifiera om UFW redan är installerat på ditt Debiansystem:
sudo ufw --version
Om UFW är installerat kommer du att se dess versionsnummer i utgången. Om inte, måste du installera den.
Installera UFW på Debian för Memcached
För att installera UFW på ditt Debian-system, kör följande kommando:
sudo apt install ufw
När installationen är klar, aktivera UFW med följande kommando:
sudo ufw enable
Konfigurera UFW-regler för Memcached
Nu när UFW är installerat och aktiverat måste du skapa tillåtelseregler på TCP-port 11211. Reglerna du skapar beror på din installation och dina krav, oavsett om du använder en enda IP-nätverksanslutning eller arbetar med flera instanser i ett klusternätverk.
Exempel på enkel IP-nätverksanslutning
Tillåt åtkomst till Memcached från en specifik IP-adress:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Cluster IP-nätverksanslutning med flera instanser exempel
Tillåt åtkomst till Memcached från ett undernät av IP-adresser:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Observera att den andra UFW-regeln är en subnätregel. Se till att det interna nätverket är säkert och pålitligt innan du tillåter åtkomst.
Steg 4: Verifiera UFW-regler
När du har ställt in lämpliga regler, kontrollera att de är korrekt konfigurerade genom att lista de aktuella UFW-reglerna:
sudo ufw status
Utdata ska visa dina konfigurerade regler, vilket säkerställer att din Memcached-instans är säkrad med UFW.
Installera Memcached Libraries
Memcached erbjuder tillägg för olika programmeringsspråk, men det används oftast med PHP. Det här avsnittet guidar dig genom att installera Memcached-bibliotek för PHP, Python och Perl och konfigurera Memcached för Apache- och Nginx-webbservrar.
Installera PHP Libraries för Memcached
För att installera PHP-biblioteket för Memcached, kör följande kommando:
sudo apt install php-memcached libapache2-mod-php php php-cli
Konfigurera Memcached för Apache HTTP Server
Om du använder Apache HTTP-servern, aktivera Memcached-modulen genom att utföra följande kommando:
sudo phpenmod memcached && sudo systemctl restart apache2
Konfigurera Memcached för Nginx HTTP Server
Memcached-stöd kommer att aktiveras som standard i ditt PHP-konfigurationsblock när PHP-biblioteket är installerat för Nginx-användare.
Nedan är ett enkelt exempel på nginx-serverblock:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Installera Python Library för Memcached
För att installera Python-stöd för Memcached, kör följande kommando:
sudo apt install python3-pymemcache
Installera Perl Library för Memcached
För att installera Perl-stöd för Memcached, kör följande kommando:
sudo apt install libcache-memcached-libmemcached-perl
Öppna Memcached från kommandoraden
Memcached kan övervakas och hanteras genom olika programvaror och webbanvändargränssnitt. Men att interagera direkt med Memcached med hjälp av kommandoraden är ofta den enklaste metoden för att kontrollera dess prestanda och hantera dess innehåll.
Anslut först till din Memcached-tjänst med telnet:
telnet localhost 11211
Exempel på utdata:
Försöker 127.0.0.1... Ansluten till localhost. Escape-tecken är '^]'.
Därefter kan du få en översikt över din Memcached-tjänst med följande kommando:
stats
Detta kommando kommer att returnera olika statistik om din Memcached-instans, såsom drifttid, antalet objekt i cachen och antalet klientanslutningar.
Du kan förfina din analys genom att undersöka Memcached plattor (minnespartitioner). Till exempel kan du lista plattorna i den anslutna instansen med:
stats slabs
Och skaffa en lista över plattor, inklusive ett antal föremål som lagras inom varje platta, med hjälp av:
stats items
För att komma åt och manipulera data lagrad i Memcached kan du använda cachedump
kommando för att lista nycklarna. För att lista alla objekt i en specifik platta, kör följande kommando:
stats cachedump [slab ID] [number of items, 0 for all items]
Till exempel:
stats cachedump 1 0
Exempel på utdata:
ITEM testnyckel [9 b; 1296857316 s] SLUT
I det här exemplet innehåller platta 1 ett objekt med nyckeln "testkey". För att hämta värdet på denna artikel, använd get
kommando:
get testkey
Exempel på utdata:
VALUE testkey 0 9 testdata END
Slutligen, för att ta bort ett cachelagrat objekt, till exempel "testnyckel", använd följande kommando:
delete testkey
Exempel på utdata:
RADERADE
Slutsats
Sammanfattningsvis kan installation och konfigurering av Memcached på Debian Linux förbättra prestandan för dina webbapplikationer avsevärt genom att tillhandahålla ett snabbt, effektivt och lättanvänt cachingsystem. Genom att följa stegen som beskrivs i den här guiden kan du framgångsrikt konfigurera Memcached, konfigurera den med din föredragna webbserver och säkra den med UFW. Med rätt konfiguration och hantering kan Memcached bli avgörande för att optimera dina applikationer och ge en bättre användarupplevelse.