Brad Fitzpatrick ontwikkelde Memcached in 2003 voor de LiveJournal-website als een krachtig, open-source cachingsysteem om de prestaties van dynamische webapplicaties te verbeteren door de databasebelasting te verminderen. Sindsdien is het van vitaal belang geworden voor veel websites en applicaties met veel verkeer. Voordat we Memcached installeren op Debian 12 Bookworm, Debian 11 Bullseye of Debian 10 Buster, bekijken we hieronder enkele belangrijke punten over Memcached.
Belangrijkste kenmerken en voordelen:
- Schaalbaarheid: Memcached, dat miljoenen bewerkingen per seconde verwerkt, is ideaal voor grootschalige webapplicaties en -services.
- Gedistribueerde caching: Met een gedistribueerde caching-architectuur maakt Memcached horizontale schaling over meerdere servers mogelijk, waardoor de algehele cachecapaciteit wordt uitgebreid.
- Opslag in geheugen: Als sleutelwaardeopslag in het geheugen zorgt Memcached voor snelle toegang tot gegevens in de cache, waardoor de latentie in schijfgebaseerde opslagsystemen aanzienlijk wordt verminderd.
- Eenvoudige API: Memcached biedt een eenvoudige API die verschillende programmeertalen ondersteunt, waaronder PHP, Python, Ruby en andere.
- Cache-vervaldatum: Met het systeem kunnen ontwikkelaars vervaltijden instellen voor gegevens in de cache, waardoor de automatische verwijdering van verouderde of verouderde gegevens uit de cache wordt vergemakkelijkt.
- Lichtgewicht: Met minimale CPU- en geheugenoverhead draait Memcached efficiënt op verschillende serverconfiguraties zonder de systeembronnen aanzienlijk uit te putten.
- Flexibele gegevenstypen: Memcached biedt plaats aan verschillende gegevenstypen, zoals tekenreeksen, gehele getallen en complexe objecten, waardoor het veelzijdig is voor uiteenlopende gebruiksscenario's.
De volgende gids leidt u door het installatieproces van Memcached op Debian met behulp van twee methoden: de standaard Debian-repository voor de meest stabiele versie of het downloaden en compileren van het nieuwste binaire bestand voor degenen die liever met de nieuwste versie werken.
Methode 1: Installeer Memcached via de standaard APT-repository
In deze sectie zullen we Memcached op uw Debian Linux-systeem installeren met behulp van de APT-pakketbeheerder. Dit omvat het bijwerken van uw systeempakketten en het installeren van Memcached met enkele handige hulpmiddelen.
Update uw Debian-systeem vóór de Memcached-installatie
Om er zeker van te zijn dat u over de nieuwste pakketversies en beveiligingsupdates beschikt, begint u met het updaten van uw Debian-systeem. Voer de volgende opdracht uit:
sudo apt update && sudo apt upgrade
Met deze opdracht wordt uw pakketlijst bijgewerkt en worden verouderde pakketten geüpgraded naar hun nieuwste versies.
Installeer Memcached en Libmemcached-tools
Debian neemt Memcached op in zijn standaardrepository's, waardoor de installatie eenvoudig wordt. Om Memcached te installeren, voert u de volgende opdracht uit:
sudo apt install memcached libmemcached-tools
Met deze opdracht worden zowel Memcached als de libmemcached-tools
pakket. De libmemcached-tools
pakket biedt extra opdrachtregelhulpprogramma's die meer interactie- en beheermogelijkheden met Memcached mogelijk maken.
Methode 2: Installeer Memcached via de broncode
In deze sectie wordt de installatie van Memcached op uw Debian-systeem besproken door het vanuit de broncode te compileren. Installeren vanaf de broncode kan nuttig zijn als u de nieuwste versie van Memcached wilt gebruiken of de build wilt aanpassen aan specifieke vereisten.
Download de opgeslagen bron
Bezoek eerst de Memcached nieuwste releasepagina om de huidige versie te vinden. Gebruik het volgende wget
commando om het direct te downloaden:
wget https://memcached.org/latest
Pak het opgeslagen bronarchief uit
Pak vervolgens de gedownloade broncode uit door de volgende opdracht uit te voeren:
tar -xvf latest
Voordat u doorgaat, navigeert u naar de uitgepakte map. De mapnaam is afhankelijk van de gedownloade versie:
cd memcached-{place version number here}
Vervangen {version_number}
met het daadwerkelijke versienummer.
Installeer de initiële pakketten die nodig zijn om Memcached te compileren
Voordat u Memcached compileert, moet u de benodigde build-afhankelijkheden installeren. Voer de volgende opdracht uit om ze te installeren:
sudo apt install build-essential libevent-dev gcc make libc6-dev
De geïnstalleerde pakketten dienen de volgende doeleinden:
gcc
: Een bekende C-compiler voor de Memcached-bronbestanden.make
: Regisseert de compilatie.libc6-dev
: Biedt een verwijzing naar de GNU C-bibliotheek en headerbestanden.libevent-dev
: bevat ontwikkelingsbestanden voor asynchrone gebeurtenismelding.
Configureer de installatie
Gebruik de --prefix=
parameter om de map in te stellen waar Memcached binary en bibliotheken zullen worden geïnstalleerd:
./configure --prefix=/usr/local
Compileer de opgeslagen broncode
Compileer de Memcached-broncode met de make
commando:
make
Test Memcached door de huidige versie te bevestigen:
./memcached --version
Installeer Memcached via de opdracht 'make install'
Zodra het compilatieproces is voltooid, installeert u Memcached door de volgende opdracht uit te voeren:
sudo make install
Met deze opdracht wordt Memcached op uw systeem geïnstalleerd, waardoor het toegankelijk wordt vanaf de opdrachtregel. Om ervoor te zorgen dat het systeem de nieuwe bibliotheken herkent, voert u het volgende uit:
sudo ldconfig
Controleer de installatie van Memcached
Om te controleren of Memcached succesvol is geïnstalleerd, voert u de volgende opdracht uit:
memcached -V
Met deze opdracht wordt de geïnstalleerde Memcached-versie weergegeven, waarmee de succesvolle installatie vanuit de broncode wordt bevestigd.
Maak een Systemd-service voor Memcached
Wanneer u Memcached vanaf de bron installeert, wordt er niet automatisch een systemd-servicebestand gemaakt. Om Memcached als een service uit te voeren en te beheren met behulp van systemctl
, moet u een aangepast systemd-servicebestand voor Memcached maken. Volg deze stappen om de service te maken en in te schakelen:
Maak een nieuw bestand met de naam memcached.service
in de /etc/systemd/system
directory met behulp van een teksteditor naar keuze. In dit voorbeeld gebruiken we nano
:
sudo nano /etc/systemd/system/memcached.service
Voeg de volgende inhoud toe aan het memcached.service
bestand:
[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
Sla het bestand op en sluit de teksteditor af.
Maak een memcache
gebruiker en groep om de service veilig uit te voeren:
sudo useradd -r -s /sbin/nologin -U -M memcache
Laad de systemd-configuratie opnieuw om het nieuwe servicebestand te herkennen:
sudo systemctl daemon-reload
Start ten slotte de service:
sudo systemctl enable memcached --now
Beheer van de opgeslagen servicestatus
In deze sectie wordt het beheer van de Memcached-dienst op uw Debian-systeem besproken. Dit omvat het controleren van de servicestatus, het starten en stoppen van de service en het configureren ervan om te worden uitgevoerd bij het opstarten van het systeem.
Controleer de opgeslagen servicestatus
Standaard zou Memcached actief moeten zijn na de installatie. Om de status ervan te verifiëren, gebruikt u de systemctl
opdracht als volgt:
systemctl status memcached
Met deze opdracht wordt de huidige status van de Memcached-service weergegeven.
Start de Memcached-service
Als Memcached niet actief is, kunt u de service starten met het volgende commando:
sudo systemctl start memcached
Schakel Memcached in tijdens het opstarten van het systeem
Om ervoor te zorgen dat de Memcached-service automatisch start wanneer uw systeem opstart, gebruikt u de volgende opdracht:
sudo systemctl enable memcached
Stop de Memcached-service
Als u de Memcached-service wilt stoppen, gebruikt u deze opdracht:
sudo systemctl stop memcached
Schakel Memcached uit tijdens het opstarten van het systeem
Om te voorkomen dat de Memcached-service automatisch start bij het opstarten van het systeem, voert u de volgende opdracht uit:
sudo systemctl disable memcached
Start de Memcached-service opnieuw
Als u de Memcached-service opnieuw moet starten, bijvoorbeeld nadat u configuratiewijzigingen hebt aangebracht, gebruikt u deze opdracht:
sudo systemctl restart memcached
Controleer of Memcached luistert op de standaardpoort
Controleer ten slotte of Memcached actief luistert op de localhost via de standaardpoort 11211
. Om dit te bevestigen, voert u de volgende opdracht uit:
ps -ef | grep memcached
De uitvoer moet een regel weergeven die aangeeft dat Memcached actief is en luistert op de opgegeven poort, vergelijkbaar met het volgende:
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
Configureer opgeslagen tips
In deze sectie wordt het configureren van de Memcached-instellingen besproken door het bewerken van de memcached.conf
bestand. We bespreken het aanpassen van het luisterende IP-adres, het uitschakelen van UDP en het wijzigen van de standaard geheugentoewijzing.
Open het opgeslagen configuratiebestand
Open het Memcached-configuratiebestand op /etc/memcached.conf
met behulp van een teksteditor, zoals nano
:
sudo nano /etc/memcached.conf
Gebruikers die Memcached vanuit de broncode hebben gecompileerd, moeten dit aanmaken, dus wanneer u het voor het eerst opent; het bestand zal leeg zijn vergeleken met de APT-methode; je kunt dit kopiëren om aan de slag te gaan met het aanpassen:
# 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
Pas het luister-IP-adres aan
Standaard luistert Memcached naar IP-adres 127.0.0.1. Controleer de parameter -l in het configuratiebestand en zorg ervoor dat deze op het juiste IP-adres is ingesteld. Als u het IP-adres moet wijzigen, vervangt u 127.0.0.1
met het nieuwe IP-adres:
-l 127.0.0.1
UDP uitschakelen (optioneel)
Als u geen UDP-ondersteuning nodig heeft, is het raadzaam deze uit te schakelen. Om UDP uit te schakelen, voegt u de volgende regel toe aan het configuratiebestand:
-U 0
Configureer de geheugentoewijzing
De standaardgeheugentoewijzing voor Memcached is 64 MB, wat mogelijk niet voldoende is voor grotere websites. Overweeg om de geheugentoewijzing aan te passen naar een hogere waarde om Memcached te maximaliseren.
Om de geheugentoewijzing in te stellen, zoekt u de -m
parameter in het configuratiebestand en vervang de standaardwaarde door de gewenste hoeveelheid (in MB). Als u bijvoorbeeld 2 GB geheugen wilt toewijzen, stelt u de waarde in op 2000
:
-m 2000
Pas deze instelling aan op basis van het beschikbare geheugen en de vereisten van uw server.
Opslaan en opnieuw opstarten in Memcached
Nadat u de nodige wijzigingen heeft aangebracht, slaat u het configuratiebestand op door op te drukken CTRL+O
, gevolgd door Y
, en dan CTRL+X
om de teksteditor te verlaten. Start ten slotte de Memcached-service opnieuw op om de wijzigingen door te voeren:
sudo systemctl restart memcached
Aanvullende Memcached-configuratievoorbeelden
Naast de eerder besproken configuratieopties zijn er verschillende andere instellingen die u kunt aanpassen om Memcached te verfijnen volgens uw vereisten. Hier zijn enkele voorbeelden, samen met korte demonstraties:
Geef de gebruiker en groep op
Memcached wordt uitgevoerd onder een specifieke gebruiker en groep die is opgegeven met behulp van de -u
parameter. Als u bijvoorbeeld Memcached wilt uitvoeren als memcache
user, voeg de volgende regel toe aan het configuratiebestand:
-u memcache
Schakel grote geheugenpagina's in
Als u deze functie inschakelt, kunnen de prestaties verbeteren als uw systeem grote geheugenpagina's ondersteunt. Om grote geheugenpagina's in te schakelen, zoekt u de -L
parameter en verwijder het commentaar (verwijder de #
aan het begin van de regel):
-L
Configureer de maximale artikelgrootte
Memcached heeft standaard een maximale itemgrootte van 1 MB. Om de maximale itemgrootte te vergroten, gebruikt u de -I
parameter gevolgd door de gewenste grootte. Als u bijvoorbeeld de maximale itemgrootte wilt instellen op 5 MB, voegt u de volgende regel toe aan het configuratiebestand:
-I 5m
Stel het maximale aantal threads in
Memcached gebruikt standaard vier threads. U kunt de parameter gebruiken om het aantal threads te verhogen of te verlagen, afhankelijk van de mogelijkheden en werklast van uw server. Als u bijvoorbeeld het aantal threads op 8 wilt instellen, voegt u de volgende regel toe:
-t 8
Configureer de time-out voor inactiviteit
Memcached sluit inactieve verbindingen automatisch af na een bepaalde periode van inactiviteit. Om de time-out voor inactiviteit te wijzigen, gebruikt u de -o
parameter gevolgd door idle_timeout
en het gewenste aantal seconden. Als u bijvoorbeeld de time-out voor inactiviteit wilt instellen op 600 seconden (10 minuten), voegt u de volgende regel toe:
-o idle_timeout=600
Schakel SASL-authenticatie in
U kunt SASL-ondersteuning (Simple Authentication and Security Layer) inschakelen als u authenticatie nodig heeft om toegang te krijgen tot uw Memcached-server. Om SASL in te schakelen, zoekt u de -S
parameter en verwijder het commentaar (verwijder de #
aan het begin van de regel):
-S
Vergeet niet om de Memcached-service altijd opnieuw te starten nadat u wijzigingen in het configuratiebestand hebt aangebracht:
sudo systemctl restart memcached
Installeer UFW Firewall voor Memcached
Om de veiligheid van uw Memcached-instantie te garanderen, is het van cruciaal belang om uw firewallregels correct te configureren. In dit gedeelte wordt beschreven hoe u de Uncomplicated Firewall (UFW) installeert en configureert om uw Memcached-server te beveiligen.
Controleer of UFW is geïnstalleerd
Laten we eerst verifiëren of UFW al op uw Debian-systeem is geïnstalleerd:
sudo ufw --version
Als UFW is geïnstalleerd, ziet u het versienummer ervan in de uitvoer. Als dit niet het geval is, moet u het installeren.
Installeer UFW op Debian voor Memcached
Om UFW op uw Debian-systeem te installeren, voert u de volgende opdracht uit:
sudo apt install ufw
Nadat de installatie is voltooid, schakelt u UFW in met de volgende opdracht:
sudo ufw enable
Configureer UFW-regels voor Memcached
Nu UFW is geïnstalleerd en ingeschakeld, moet u regels voor het toestaan van TCP-poort 11211 maken. De regels die u maakt, zijn afhankelijk van uw installatie en vereisten, of u nu een enkele IP-netwerkverbinding gebruikt of met meerdere instanties in een clusternetwerk werkt.
Voorbeeld van een enkele IP-netwerkverbinding
Sta toegang tot Memcached toe vanaf een specifiek IP-adres:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Voorbeeld van een cluster-IP-netwerkverbinding met meerdere exemplaren
Sta toegang tot Memcached toe vanaf een subnet met IP-adressen:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Houd er rekening mee dat de tweede UFW-regel een subnetregel is. Zorg ervoor dat het interne netwerk veilig en betrouwbaar is voordat u toegang verleent.
Stap 4: Controleer de UFW-regels
Nadat u de juiste regels heeft ingesteld, controleert u of ze correct zijn geconfigureerd door de huidige UFW-regels op te sommen:
sudo ufw status
De uitvoer moet uw geconfigureerde regels weergeven, zodat uw Memcached-instantie is beveiligd met UFW.
Installeer opgeslagen bibliotheken
Memcached biedt extensies voor verschillende programmeertalen, maar wordt het meest gebruikt met PHP. In deze sectie wordt u begeleid bij het installeren van Memcached-bibliotheken voor PHP, Python en Perl en bij het configureren van Memcached voor Apache- en Nginx-webservers.
Installeer PHP-bibliotheken voor Memcached
Om de PHP-bibliotheek voor Memcached te installeren, voert u de volgende opdracht uit:
sudo apt install php-memcached libapache2-mod-php php php-cli
Configureer Memcached voor Apache HTTP-server
Als u de Apache HTTP Server gebruikt, schakelt u de Memcached-module in door de volgende opdracht uit te voeren:
sudo phpenmod memcached && sudo systemctl restart apache2
Configureer Memcached voor Nginx HTTP-server
Memcached-ondersteuning wordt standaard ingeschakeld binnen uw PHP-configuratieblok zodra de PHP-bibliotheek is geïnstalleerd voor Nginx-gebruikers.
Hieronder ziet u een eenvoudig voorbeeld van een 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;
}
}
Installeer Python Library voor Memcached
Voer de volgende opdracht uit om Python-ondersteuning voor Memcached te installeren:
sudo apt install python3-pymemcache
Installeer Perl-bibliotheek voor Memcached
Om Perl-ondersteuning voor Memcached te installeren, voert u de volgende opdracht uit:
sudo apt install libcache-memcached-libmemcached-perl
Toegang tot Memcached vanaf de opdrachtregel
Memcached kan worden gemonitord en beheerd via verschillende software- en webgebruikersinterfaces. Rechtstreekse interactie met Memcached via de opdrachtregel is echter vaak de meest eenvoudige methode om de prestaties ervan te controleren en de inhoud ervan te beheren.
Maak eerst verbinding met uw Memcached-service via telnet:
telnet localhost 11211
Voorbeelduitvoer:
Ik probeer 127.0.0.1... Verbonden met localhost. Escape-teken is '^]'.
Vervolgens kunt u met het volgende commando een overzicht krijgen van uw Memcached-service:
stats
Deze opdracht retourneert verschillende statistieken over uw Memcached-instantie, zoals uptime, het aantal items in de cache en het aantal clientverbindingen.
U kunt uw analyse verfijnen door Memcached-platen (geheugenpartities) te onderzoeken. U kunt bijvoorbeeld de platen in het verbonden exemplaar weergeven met:
stats slabs
En verkrijg een lijst met platen, inclusief een telling van de items die in elke plaat zijn opgeslagen, met behulp van:
stats items
Om toegang te krijgen tot gegevens die zijn opgeslagen in Memcached en deze te manipuleren, kunt u de cachedump
opdracht om de sleutels weer te geven. Om alle items in een specifieke plaat weer te geven, voert u de volgende opdracht uit:
stats cachedump [slab ID] [number of items, 0 for all items]
Bijvoorbeeld:
stats cachedump 1 0
Voorbeelduitvoer:
ITEM-testsleutel [9 b; 1296857316 s] EINDE
In dit voorbeeld bevat plaat 1 één item met de sleutel “testkey”. Om de waarde van dit item op te halen, gebruikt u de get
commando:
get testkey
Voorbeelduitvoer:
WAARDE testsleutel 0 9 testgegevens EINDE
Om ten slotte een item in de cache, zoals “testkey”, te verwijderen, gebruikt u de volgende opdracht:
delete testkey
Voorbeelduitvoer:
VERWIJDERD
Conclusie
Concluderend kan het installeren en configureren van Memcached op Debian Linux de prestaties van uw webapplicaties aanzienlijk verbeteren door een snel, efficiënt en gemakkelijk te gebruiken cachingsysteem te bieden. Door de stappen in deze handleiding te volgen, kunt u Memcached met succes instellen, configureren met uw favoriete webserver en beveiligen met UFW. Met de juiste configuratie en beheer kan Memcached essentieel worden voor het optimaliseren van uw applicaties en het bieden van een betere gebruikerservaring.