Brad Fitzpatrick udviklede Memcached i 2003 til LiveJournal-webstedet som et kraftfuldt, open source-cachesystem til at forbedre ydeevnen af dynamiske webapplikationer ved at reducere databasebelastningen. Siden da er det blevet afgørende for mange websteder og applikationer med høj trafik. Før vi installerer Memcached på Debian 12 Bookworm, Debian 11 Bullseye eller Debian 10 Buster, lad os undersøge nogle nøglepunkter om Memcached nedenfor.
Nøglefunktioner og fordele:
- Skalerbarhed: Memcached, der håndterer millioner af operationer i sekundet, er ideel til store webapplikationer og tjenester.
- Distribueret cachelagring: Med en distribueret cache-arkitektur tillader Memcached horisontal skalering på tværs af flere servere, hvilket udvider den samlede cachekapacitet.
- Opbevaring i hukommelsen: Som et nøgleværdilager i hukommelsen sikrer Memcached hurtig adgang til cachelagrede data, hvilket reducerer latenstiden betydeligt i diskbaserede lagersystemer.
- Simpel API: Memcached giver en ligetil API, der understøtter forskellige programmeringssprog, herunder PHP, Python, Ruby og andre.
- Cache-udløb: Systemet gør det muligt for udviklere at indstille udløbstider for cachelagrede data, hvilket letter den automatiske fjernelse af forældede eller forældede data fra cachen.
- Letvægt: Med minimal CPU og hukommelsesomkostninger kører Memcached effektivt på forskellige serverkonfigurationer uden at dræne systemressourcerne væsentligt.
- Fleksible datatyper: Memcached rummer forskellige datatyper, såsom strenge, heltal og komplekse objekter, hvilket gør det alsidigt til forskellige brugssager.
Følgende guide vil lede dig gennem installationsprocessen af Memcached på Debian ved hjælp af to metoder: Debians standardlager til den mest stabile version eller download og kompilering af den seneste binære version for dem, der foretrækker at arbejde med den nyeste version.
Metode 1: Installer Memcached via Default APT Repository
I dette afsnit vil vi installere Memcached på dit Debian Linux-system ved hjælp af APT-pakkehåndteringen. Dette involverer opdatering af dine systempakker og installation af Memcached med nogle nyttige værktøjer.
Opdater dit Debian-system før Memcached-installation
For at sikre, at du har de seneste pakkeversioner og sikkerhedsopdateringer, skal du starte med at opdatere dit Debian-system. Kør følgende kommando:
sudo apt update && sudo apt upgrade
Denne kommando vil opdatere din pakkeliste og opgradere forældede pakker til deres nyeste versioner.
Installer Memcached og Libmemcached-værktøjer
Debian inkluderer Memcached i dets standardlagre, hvilket gør installationen enkel. For at installere Memcached skal du køre følgende kommando:
sudo apt install memcached libmemcached-tools
Denne kommando installerer både Memcached og libmemcached-tools
pakke. Det libmemcached-tools
pakken indeholder yderligere kommandolinjeværktøjer, der muliggør flere interaktions- og administrationsmuligheder med Memcached.
Metode 2: Installer Memcached via kilde
Dette afsnit dækker installation af Memcached på dit Debian-system ved at kompilere det fra kildekoden. Installation fra kilden kan være en fordel, hvis du vil bruge den nyeste version af Memcached eller tilpasse buildet til specifikke krav.
Download Memcached-kilden
Besøg først Memcached seneste udgivelsesside for at finde den aktuelle version. Brug følgende wget
kommando for at downloade det direkte:
wget https://memcached.org/latest
Udpak Memcached kildearkiv
Udtræk derefter den downloadede kildekode ved at køre følgende kommando:
tar -xvf latest
Før du fortsætter, skal du navigere til den udpakkede mappe. Biblioteksnavnet afhænger af den downloadede version:
cd memcached-{place version number here}
Erstatte {version_number}
med det faktiske versionsnummer.
Installer indledende pakker, der kræves for at kompilere Memcached
Før du kompilerer Memcached, skal du installere de nødvendige build-afhængigheder. Kør følgende kommando for at installere dem:
sudo apt install build-essential libevent-dev gcc make libc6-dev
De installerede pakker tjener følgende formål:
gcc
: En velkendt C-compiler til Memcached-kildefilerne.make
: Styrer kompilering.libc6-dev
: Giver en reference til GNU C-biblioteket og header-filer.libevent-dev
: Indeholder udviklingsfiler til asynkron hændelsesmeddelelse.
Konfigurer installationen
Brug --prefix=
parameter for at indstille den mappe, hvor Memcached binær og biblioteker vil blive installeret:
./configure --prefix=/usr/local
Kompiler Memcached kildekode
Kompiler den Memcached-kildekode med make
kommando:
make
Test Memcached ved at bekræfte den aktuelle version:
./memcached --version
Installer Memcached via kommandoen 'make install'
Når kompileringsprocessen er færdig, skal du installere Memcached ved at køre følgende kommando:
sudo make install
Denne kommando installerer Memcached på dit system, hvilket gør det tilgængeligt fra kommandolinjen. For at sikre, at systemet genkender de nye biblioteker, skal du køre følgende:
sudo ldconfig
Bekræft installationen af Memcached
For at bekræfte, at Memcached er installeret korrekt, skal du køre følgende kommando:
memcached -V
Denne kommando viser den installerede Memcached-version, hvilket bekræfter den vellykkede installation fra kildekoden.
Opret en Systemd Service til Memcached
Når du installerer Memcached fra kilden, opretter den ikke automatisk en systemd servicefil. At køre Memcached som en tjeneste og administrere den ved hjælp af systemctl
, skal du oprette en brugerdefineret systemd-tjenestefil til Memcached. Følg disse trin for at oprette og aktivere tjenesten:
Opret en ny fil kaldet memcached.service
i /etc/systemd/system
mappe ved hjælp af en teksteditor efter eget valg. I dette eksempel vil vi bruge nano
:
sudo nano /etc/systemd/system/memcached.service
Tilføj følgende indhold til 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
Gem filen og afslut teksteditoren.
Lave en memcache
bruger og gruppe for at køre tjenesten sikkert:
sudo useradd -r -s /sbin/nologin -U -M memcache
Genindlæs systemd-konfigurationen for at genkende den nye servicefil:
sudo systemctl daemon-reload
Start endelig tjenesten:
sudo systemctl enable memcached --now
Håndtering af Memcached Service Status
Dette afsnit vil dække administration af Memcached-tjenesten på dit Debian-system. Dette omfatter kontrol af tjenestestatus, start og stop af tjenesten og konfiguration af den til at køre ved systemstart.
Tjek Memcached Service Status
Som standard skal Memcached køre efter installationen. For at bekræfte dens status skal du bruge systemctl
kommando som følger:
systemctl status memcached
Denne kommando viser den aktuelle status for Memcached-tjenesten.
Start Memcached-tjenesten
Hvis Memcached ikke kører, kan du starte tjenesten med følgende kommando:
sudo systemctl start memcached
Aktiver Memcached på systemstarten
For at sikre, at Memcached-tjenesten starter automatisk, når dit system starter, skal du bruge følgende kommando:
sudo systemctl enable memcached
Stop Memcached-tjenesten
Hvis du skal stoppe Memcached-tjenesten, skal du bruge denne kommando:
sudo systemctl stop memcached
Deaktiver Memcached på systemstarten
For at forhindre, at Memcached-tjenesten starter automatisk ved systemstart, skal du køre følgende kommando:
sudo systemctl disable memcached
Genstart Memcached-tjenesten
Hvis du har brug for at genstarte Memcached-tjenesten, for eksempel efter at have foretaget konfigurationsændringer, skal du bruge denne kommando:
sudo systemctl restart memcached
Bekræft, at Memcached lytter på standardporten
Til sidst skal du kontrollere, at Memcached aktivt lytter på den lokale vært ved hjælp af standardporten 11211
. For at bekræfte dette skal du køre følgende kommando:
ps -ef | grep memcached
Outputtet skal vise en linje, der angiver, at Memcached kører og lytter på den angivne port, svarende til følgende:
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
Konfigurer Memcached Tips
Dette afsnit vil dække konfiguration af Memcached-indstillingerne ved at redigere memcached.conf
fil. Vi vil diskutere justering af den lyttende IP-adresse, deaktivering af UDP og ændring af standardhukommelsesallokeringen.
Åbn Memcached Configuration File
Åbn Memcached-konfigurationsfilen på /etc/memcached.conf
ved hjælp af en teksteditor, som f.eks nano
:
sudo nano /etc/memcached.conf
Brugere, der kompilerede Memcached fra kilden, skal oprette dette, så når du åbner det første gang; filen vil være tom sammenlignet med APT-metoden; du kan kopiere dette for at komme i gang med at justere:
# 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
Juster den lyttende IP-adresse
Som standard lytter Memcached til IP-adressen 127.0.0.1. Kontroller parameteren -l i konfigurationsfilen, og sørg for, at den er indstillet til den korrekte IP-adresse. Hvis du har brug for at ændre IP-adressen, skal du udskifte den 127.0.0.1
med den nye IP-adresse:
-l 127.0.0.1
Deaktiver UDP (valgfrit)
Hvis du ikke har brug for UDP-understøttelse, anbefales det at deaktivere den. For at deaktivere UDP skal du tilføje følgende linje til konfigurationsfilen:
-U 0
Konfigurer hukommelsestildelingen
Standardhukommelsestildelingen for Memcached er 64MB, hvilket muligvis ikke er tilstrækkeligt til større websteder. Overvej at justere hukommelsesallokeringen til en højere værdi for at maksimere Memcached.
For at indstille hukommelsesallokeringen skal du finde -m
parameter i konfigurationsfilen og erstatte standardværdien med den ønskede mængde (i MB). For at tildele 2 GB hukommelse skal du f.eks. indstille værdien til 2000
:
-m 2000
Juster denne indstilling baseret på din servers tilgængelige hukommelse og krav.
Gem og genstart Memcached
Efter at have foretaget de nødvendige ændringer skal du gemme konfigurationsfilen ved at trykke på CTRL+O
, efterfulgt af Y
, og så CTRL+X
for at afslutte teksteditoren. Til sidst skal du genstarte Memcached-tjenesten for at ændringerne træder i kraft:
sudo systemctl restart memcached
Yderligere Memcached-konfigurationseksempler
Ud over de konfigurationsmuligheder, der er dækket tidligere, er der flere andre indstillinger, som du kan justere for at finjustere Memcached i henhold til dine krav. Her er nogle eksempler sammen med korte demonstrationer:
Angiv brugeren og gruppen
Memcached kører under en specifik bruger og gruppe angivet ved hjælp af -u
parameter. For eksempel at køre Memcached som memcache
bruger, skal du tilføje følgende linje til konfigurationsfilen:
-u memcache
Aktiver store hukommelsessider
Aktivering af denne funktion kan forbedre ydeevnen, hvis dit system understøtter store hukommelsessider. For at aktivere store hukommelsessider skal du finde -L
parameter og fjern kommentaren (fjern #
i begyndelsen af linjen):
-L
Konfigurer den maksimale varestørrelse
Memcached har en standard maksimal elementstørrelse på 1 MB. For at øge den maksimale varestørrelse skal du bruge -I
parameter efterfulgt af den ønskede størrelse. For at indstille den maksimale varestørrelse til 5 MB, skal du tilføje følgende linje til konfigurationsfilen:
-I 5m
Indstil det maksimale antal tråde
Memcached bruger fire tråde som standard. Du kan bruge parameteren til at øge eller mindske antallet af tråde i henhold til din servers muligheder og arbejdsbelastning. For at indstille antallet af tråde til 8, skal du tilføje følgende linje:
-t 8
Konfigurer inaktiv timeout
Memcached lukker automatisk inaktive forbindelser efter en vis periode med inaktivitet. For at ændre inaktiv timeout skal du bruge -o
parameter efterfulgt af idle_timeout
og det ønskede antal sekunder. For at indstille inaktiv timeout til 600 sekunder (10 minutter) skal du tilføje følgende linje:
-o idle_timeout=600
Aktiver SASL-godkendelse
Du kan aktivere SASL-understøttelse (Simple Authentication and Security Layer), hvis du har brug for godkendelse for at få adgang til din Memcached-server. For at aktivere SASL skal du finde -S
parameter og fjern kommentaren (fjern #
i begyndelsen af linjen):
-S
Husk altid at genstarte Memcached-tjenesten efter at have foretaget ændringer i konfigurationsfilen:
sudo systemctl restart memcached
Installer UFW Firewall til Memcached
For at sikre sikkerheden for din Memcached-instans er det afgørende at konfigurere dine firewallregler korrekt. Dette afsnit vil dække, hvordan du installerer og konfigurerer Uncomplicated Firewall (UFW) for at sikre din Memcached-server.
Tjek om UFW er installeret
Lad os først kontrollere, om UFW allerede er installeret på dit Debian-system:
sudo ufw --version
Hvis UFW er installeret, vil du se dets versionsnummer i outputtet. Hvis ikke, skal du installere det.
Installer UFW på Debian til Memcached
For at installere UFW på dit Debian-system skal du køre følgende kommando:
sudo apt install ufw
Når installationen er færdig, skal du aktivere UFW med følgende kommando:
sudo ufw enable
Konfigurer UFW-regler for Memcached
Nu hvor UFW er installeret og aktiveret, skal du oprette tilladelsesregler på TCP-port 11211. De regler, du opretter, afhænger af din installation og dine krav, uanset om du bruger en enkelt IP-netværksforbindelse eller arbejder med flere forekomster i et klyngenetværk.
Eksempel på en enkelt IP-netværksforbindelse
Tillad adgang til Memcached fra en specifik IP-adresse:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Klynge IP-netværksforbindelse med flere forekomster eksempel
Tillad adgang til Memcached fra et undernet af IP-adresser:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Bemærk, at den anden UFW-regel er en undernetregel. Sørg for, at det interne netværk er sikkert og troværdigt, før du tillader adgang.
Trin 4: Bekræft UFW-regler
Efter opsætning af de relevante regler skal du kontrollere, at de er korrekt konfigureret ved at angive de aktuelle UFW-regler:
sudo ufw status
Outputtet skal vise dine konfigurerede regler, hvilket sikrer, at din Memcached-instans er sikret med UFW.
Installer Memcached Libraries
Memcached tilbyder udvidelser til forskellige programmeringssprog, men det bruges mest med PHP. Dette afsnit vil guide dig gennem installation af Memcached-biblioteker til PHP, Python og Perl og konfiguration af Memcached til Apache- og Nginx-webservere.
Installer PHP-biblioteker til Memcached
For at installere PHP-biblioteket til Memcached skal du køre følgende kommando:
sudo apt install php-memcached libapache2-mod-php php php-cli
Konfigurer Memcached til Apache HTTP Server
Hvis du bruger Apache HTTP-serveren, skal du aktivere Memcached-modulet ved at udføre følgende kommando:
sudo phpenmod memcached && sudo systemctl restart apache2
Konfigurer Memcached til Nginx HTTP Server
Memcached-understøttelse vil blive aktiveret som standard i din PHP-konfigurationsblok, når PHP-biblioteket er installeret for Nginx-brugere.
Nedenfor er et simpelt eksempel på nginx-serverblok:
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;
}
}
Installer Python Library til Memcached
For at installere Python-understøttelse til Memcached skal du køre følgende kommando:
sudo apt install python3-pymemcache
Installer Perl Library til Memcached
For at installere Perl-understøttelse til Memcached skal du udføre følgende kommando:
sudo apt install libcache-memcached-libmemcached-perl
Få adgang til Memcached fra kommandolinjen
Memcached kan overvåges og administreres gennem forskellige software- og webbrugergrænseflader. Men at interagere direkte med Memcached ved hjælp af kommandolinjen er ofte den mest ligetil metode til at kontrollere dens ydeevne og administrere dens indhold.
Først skal du oprette forbindelse til din Memcached-tjeneste ved hjælp af telnet:
telnet localhost 11211
Eksempel output:
Prøver 127.0.0.1... Forbundet til localhost. Escape-tegn er '^]'.
Dernæst kan du få et overblik over din Memcached-tjeneste med følgende kommando:
stats
Denne kommando vil returnere forskellige statistikker om din Memcached-instans, såsom oppetid, antallet af elementer i cachen og antallet af klientforbindelser.
Du kan forfine din analyse ved at undersøge Memcached plader (hukommelsespartitioner). For eksempel kan du liste pladerne i den tilsluttede instans med:
stats slabs
Og få en liste over plader, inklusive en optælling af de genstande, der er gemt i hver plade, ved hjælp af:
stats items
For at få adgang til og manipulere data, der er gemt i Memcached, kan du bruge cachedump
kommando for at vise tasterne. For at liste alle elementer i en specifik plade skal du udføre følgende kommando:
stats cachedump [slab ID] [number of items, 0 for all items]
For eksempel:
stats cachedump 1 0
Eksempel output:
ITEM testnøgle [9 b; 1296857316 s] SLUT
I dette eksempel indeholder plade 1 et emne med nøglen "testnøgle". For at hente værdien af denne vare skal du bruge get
kommando:
get testkey
Eksempel output:
VÆRDI testtast 0 9 testdata SLUT
Til sidst, for at slette et cachelagret element, såsom "testkey", skal du bruge følgende kommando:
delete testkey
Eksempel output:
SLETTEDE
Konklusion
Afslutningsvis kan installation og konfiguration af Memcached på Debian Linux forbedre ydeevnen af dine webapplikationer betydeligt ved at levere et hurtigt, effektivt og brugervenligt cachesystem. Ved at følge de trin, der er beskrevet i denne vejledning, kan du med succes opsætte Memcached, konfigurere den med din foretrukne webserver og sikre den ved hjælp af UFW. Med den korrekte konfiguration og styring kan Memcached blive afgørende for at optimere dine applikationer og give en bedre brugeroplevelse.