Brad Fitzpatrick vyvinul Memcached v roce 2003 pro web LiveJournal jako výkonný systém pro ukládání do mezipaměti s otevřeným zdrojovým kódem pro zvýšení výkonu dynamických webových aplikací snížením zatížení databáze. Od té doby se stal životně důležitým pro mnoho webů a aplikací s vysokou návštěvností. Než nainstalujeme Memcached na Debian 12 Bookworm, Debian 11 Bullseye nebo Debian 10 Buster, podívejme se níže na některé klíčové body o Memcached.
Klíčové vlastnosti a výhody:
- Škálovatelnost: Memcached, který zvládá miliony operací za sekundu, je ideální pro rozsáhlé webové aplikace a služby.
- Distribuované ukládání do mezipaměti: Díky distribuované architektuře ukládání do mezipaměti umožňuje Memcached horizontální škálování napříč více servery, čímž se rozšiřuje celková kapacita mezipaměti.
- Úložiště v paměti: Jako úložiště klíč-hodnota v paměti zajišťuje Memcached rychlý přístup k datům uloženým v mezipaměti a výrazně snižuje latenci v diskových úložných systémech.
- Jednoduché API: Memcached poskytuje přímočaré API, které podporuje různé programovací jazyky, včetně PHP, Python, Ruby a dalších.
- Vypršení platnosti mezipaměti: Systém umožňuje vývojářům nastavit dobu vypršení platnosti dat uložených v mezipaměti, což usnadňuje automatické odstranění zastaralých nebo zastaralých dat z mezipaměti.
- Lehká váha: S minimální režií CPU a paměti Memcached efektivně běží na různých konfiguracích serverů bez výrazného vyčerpání systémových zdrojů.
- Flexibilní datové typy: Memcached pojme různé typy dat, jako jsou řetězce, celá čísla a složité objekty, takže je univerzální pro různé případy použití.
Následující průvodce vás provede procesem instalace Memcached na Debianu pomocí dvou metod: výchozího úložiště Debianu pro nejstabilnější verzi nebo stažení a kompilace nejnovějšího binárního souboru pro ty, kteří dávají přednost práci s nejnovější verzí.
Metoda 1: Nainstalujte Memcached přes výchozí úložiště APT
V této části nainstalujeme Memcached na váš systém Debian Linux pomocí správce balíčků APT. To zahrnuje aktualizaci vašich systémových balíčků a instalaci Memcached s některými užitečnými nástroji.
Aktualizujte svůj systém Debian před instalací Memcached
Abyste měli jistotu, že máte nejnovější verze balíčků a aktualizace zabezpečení, začněte aktualizací systému Debian. Spusťte následující příkaz:
sudo apt update && sudo apt upgrade
Tento příkaz aktualizuje váš seznam balíčků a upgraduje zastaralé balíčky na jejich nejnovější verze.
Nainstalujte nástroje Memcached a Libmemcached-tools
Debian obsahuje Memcached ve svých výchozích repozitářích, takže instalace je jednoduchá. Chcete-li nainstalovat Memcached, spusťte následující příkaz:
sudo apt install memcached libmemcached-tools
Tento příkaz nainstaluje jak Memcached, tak i libmemcached-tools
balík. The libmemcached-tools
balíček poskytuje další nástroje příkazového řádku, které umožňují více možností interakce a správy s Memcached.
Metoda 2: Nainstalujte Memcached přes zdroj
Tato část popisuje instalaci Memcached na váš systém Debian kompilací ze zdrojového kódu. Instalace ze zdroje může být výhodná, pokud chcete používat nejnovější verzi Memcached nebo přizpůsobit sestavení konkrétním požadavkům.
Stáhněte si zdroj Memcached
Nejprve navštivte Memcached stránka nejnovější verze najít aktuální verzi. Použijte následující wget
příkaz ke stažení přímo:
wget https://memcached.org/latest
Rozbalte zdrojový archiv Memcached
Dále rozbalte stažený zdrojový kód spuštěním následujícího příkazu:
tar -xvf latest
Než budete pokračovat, přejděte do extrahovaného adresáře. Název adresáře závisí na stažené verzi:
cd memcached-{place version number here}
Nahradit {version_number}
se skutečným číslem verze.
Nainstalujte počáteční balíčky nutné ke kompilaci Memcached
Před kompilací Memcached musíte nainstalovat potřebné závislosti sestavení. Spusťte následující příkaz a nainstalujte je:
sudo apt install build-essential libevent-dev gcc make libc6-dev
Nainstalované balíčky slouží k následujícím účelům:
gcc
: Známý kompilátor jazyka C pro zdrojové soubory Memcached.make
: Řídí kompilaci.libc6-dev
: Poskytuje odkaz na knihovnu GNU C a hlavičkové soubory.libevent-dev
: Obsahuje vývojové soubory pro asynchronní upozornění na události.
Nakonfigurujte instalaci
Použijte --prefix=
parametr pro nastavení adresáře, kam se nainstaluje binární soubor Memcached a knihovny:
./configure --prefix=/usr/local
Zkompilujte zdrojový kód Memcached
Zkompilujte zdrojový kód Memcached s make
příkaz:
make
Otestujte Memcached potvrzením aktuální verze:
./memcached --version
Nainstalujte Memcached pomocí příkazu 'make install'
Jakmile je proces kompilace dokončen, nainstalujte Memcached spuštěním následujícího příkazu:
sudo make install
Tento příkaz nainstaluje Memcached do vašeho systému a zpřístupní jej z příkazového řádku. Abyste zajistili, že systém rozpozná nové knihovny, spusťte následující:
sudo ldconfig
Ověřte instalaci Memcached
Chcete-li ověřit, zda je Memcached úspěšně nainstalován, spusťte následující příkaz:
memcached -V
Tento příkaz zobrazí nainstalovanou verzi Memcached a potvrdí úspěšnou instalaci ze zdrojového kódu.
Vytvořte službu Systemd pro Memcached
Když nainstalujete Memcached ze zdroje, automaticky se nevytvoří soubor služby systemd. Spustit Memcached jako službu a spravovat ji pomocí systemctl
, musíte vytvořit vlastní soubor služby systemd pro Memcached. Chcete-li vytvořit a povolit službu, postupujte takto:
Vytvořte nový soubor s názvem memcached.service
v /etc/systemd/system
adresář pomocí textového editoru dle vašeho výběru. V tomto příkladu použijeme nano
:
sudo nano /etc/systemd/system/memcached.service
Přidejte následující obsah do memcached.service
soubor:
[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
Uložte soubor a ukončete textový editor.
Vytvořit memcache
uživatel a skupina pro bezpečné spuštění služby:
sudo useradd -r -s /sbin/nologin -U -M memcache
Znovu načtěte konfiguraci systemd, abyste rozpoznali nový soubor služby:
sudo systemctl daemon-reload
Nakonec spusťte službu:
sudo systemctl enable memcached --now
Správa stavu služby Memcached
Tato část se bude zabývat správou služby Memcached na vašem systému Debian. To zahrnuje kontrolu stavu služby, spouštění a zastavování služby a její konfiguraci pro spuštění při spouštění systému.
Zkontrolujte stav služby Memcached
Ve výchozím nastavení by měl Memcached po instalaci běžet. Chcete-li ověřit jeho stav, použijte systemctl
příkaz takto:
systemctl status memcached
Tento příkaz zobrazí aktuální stav služby Memcached.
Spusťte službu Memcached
Pokud Memcached neběží, můžete službu spustit pomocí následujícího příkazu:
sudo systemctl start memcached
Povolte Memcached při spouštění systému
Chcete-li zajistit, aby se služba Memcached spustila automaticky při spuštění systému, použijte následující příkaz:
sudo systemctl enable memcached
Zastavte službu Memcached
Pokud potřebujete zastavit službu Memcached, použijte tento příkaz:
sudo systemctl stop memcached
Zakažte Memcached při spouštění systému
Chcete-li zabránit automatickému spuštění služby Memcached při spouštění systému, spusťte následující příkaz:
sudo systemctl disable memcached
Restartujte službu Memcached
Pokud potřebujete restartovat službu Memcached, například po provedení změn konfigurace, použijte tento příkaz:
sudo systemctl restart memcached
Ověřte, že Memcached naslouchá na výchozím portu
Nakonec ověřte, že Memcached aktivně naslouchá na localhost pomocí výchozího portu 11211
. Chcete-li to potvrdit, spusťte následující příkaz:
ps -ef | grep memcached
Výstup by měl zobrazovat řádek indikující, že Memcached běží a naslouchá na zadaném portu, podobně jako v následujícím:
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
Konfigurace tipů Memcached
Tato část se bude zabývat konfigurací nastavení Memcached úpravou souboru memcached.conf
soubor. Probereme úpravu naslouchací IP adresy, deaktivaci UDP a změnu výchozí alokace paměti.
Otevřete konfigurační soubor Memcached
Otevřete konfigurační soubor Memcached umístěný na /etc/memcached.conf
pomocí textového editoru, např nano
:
sudo nano /etc/memcached.conf
Uživatelé, kteří zkompilovali Memcached ze zdroje, jej budou muset vytvořit, takže když jej poprvé otevřete; soubor bude ve srovnání s metodou APT prázdný; můžete zkopírovat toto, abyste mohli začít s úpravou:
# 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
Upravte IP adresu pro poslech
Ve výchozím nastavení Memcached naslouchá IP adrese 127.0.0.1. Zkontrolujte parametr -l v konfiguračním souboru a ujistěte se, že je nastaven na správnou IP adresu. Pokud potřebujete upravit IP adresu, nahraďte ji 127.0.0.1
s novou IP adresou:
-l 127.0.0.1
Zakázat UDP (volitelné)
Pokud nepotřebujete podporu UDP, doporučujeme ji vypnout. Chcete-li zakázat UDP, přidejte do konfiguračního souboru následující řádek:
-U 0
Nakonfigurujte alokaci paměti
Výchozí alokace paměti pro Memcached je 64 MB, což nemusí být dostatečné pro větší weby. Zvažte úpravu přidělení paměti na vyšší hodnotu, abyste maximalizovali Memcached.
Chcete-li nastavit přidělení paměti, vyhledejte -m
parametr v konfiguračním souboru a nahraďte výchozí hodnotu požadovanou hodnotou (v MB). Chcete-li například přidělit 2 GB paměti, nastavte hodnotu na 2000
:
-m 2000
Upravte toto nastavení na základě dostupné paměti vašeho serveru a požadavků.
Uložte a restartujte Memcached
Po provedení nezbytných změn uložte konfigurační soubor stisknutím tlačítka CTRL+O
, následován Y
, a pak CTRL+X
pro ukončení textového editoru. Nakonec restartujte službu Memcached, aby se změny projevily:
sudo systemctl restart memcached
Další příklady konfigurace Memcached
Kromě výše uvedených možností konfigurace existuje několik dalších nastavení, která můžete upravit, abyste doladili Memcached podle svých požadavků. Zde je několik příkladů spolu s krátkými ukázkami:
Zadejte uživatele a skupinu
Memcached běží pod konkrétním uživatelem a skupinou zadanou pomocí -u
parametr. Například spustit Memcached jako memcache
uživatel, přidejte do konfiguračního souboru následující řádek:
-u memcache
Povolit velké stránky paměti
Povolení této funkce může zlepšit výkon, pokud váš systém podporuje velké stránky paměti. Chcete-li povolit velké stránky paměti, vyhledejte -L
parametr a odkomentujte jej (odstraňte #
na začátku řádku):
-L
Nakonfigurujte maximální velikost položky
Memcached má výchozí maximální velikost položky 1 MB. Chcete-li zvýšit maximální velikost položky, použijte -I
parametr následovaný požadovanou velikostí. Chcete-li například nastavit maximální velikost položky na 5 MB, přidejte do konfiguračního souboru následující řádek:
-I 5m
Nastavte maximální počet vláken
Memcached standardně používá čtyři vlákna. Pomocí parametru můžete zvýšit nebo snížit počet vláken v závislosti na možnostech a pracovním zatížení vašeho serveru. Chcete-li například nastavit počet vláken na 8, přidejte následující řádek:
-t 8
Nakonfigurujte časový limit nečinnosti
Memcached automaticky zavře nečinná připojení po určité době nečinnosti. Chcete-li upravit časový limit nečinnosti, použijte -o
parametr následovaný idle_timeout
a požadovaný počet sekund. Chcete-li například nastavit časový limit nečinnosti na 600 sekund (10 minut), přidejte následující řádek:
-o idle_timeout=600
Povolit ověřování SASL
Podporu SASL (Simple Authentication and Security Layer) můžete povolit, pokud pro přístup k serveru Memcached vyžadujete ověření. Chcete-li povolit SASL, vyhledejte -S
parametr a odkomentujte jej (odstraňte #
na začátku řádku):
-S
Nezapomeňte vždy restartovat službu Memcached po provedení změn v konfiguračním souboru:
sudo systemctl restart memcached
Nainstalujte UFW Firewall pro Memcached
Pro zajištění bezpečnosti vaší instance Memcached je důležité správně nakonfigurovat pravidla brány firewall. Tato část se bude zabývat tím, jak nainstalovat a nakonfigurovat Uncomplicated Firewall (UFW) pro zabezpečení vašeho serveru Memcached.
Zkontrolujte, zda je nainstalován UFW
Nejprve ověřte, zda je ve vašem systému Debian již nainstalován UFW:
sudo ufw --version
Pokud je nainstalován UFW, uvidíte ve výstupu číslo jeho verze. Pokud ne, budete jej muset nainstalovat.
Nainstalujte UFW na Debian pro Memcached
Chcete-li nainstalovat UFW na váš systém Debian, spusťte následující příkaz:
sudo apt install ufw
Po dokončení instalace povolte UFW pomocí následujícího příkazu:
sudo ufw enable
Nakonfigurujte pravidla UFW pro Memcached
Nyní, když je UFW nainstalováno a povoleno, musíte vytvořit pravidla povolení na portu TCP 11211. Pravidla, která vytvoříte, budou záviset na vaší instalaci a požadavcích, ať už používáte jedno síťové připojení IP nebo pracujete s více instancemi v síti clusteru.
Příklad síťového připojení s jednou IP
Povolit přístup k Memcached z konkrétní IP adresy:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Příklad síťového připojení clusteru IP s více instancemi
Povolit přístup k Memcached z podsítě IP adres:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Všimněte si, že druhé pravidlo UFW je pravidlo podsítě. Před povolením přístupu se ujistěte, že je interní síť bezpečná a důvěryhodná.
Krok 4: Ověřte pravidla UFW
Po nastavení příslušných pravidel ověřte, zda jsou správně nakonfigurována, uvedením aktuálních pravidel UFW:
sudo ufw status
Výstup by měl zobrazovat vaše nakonfigurovaná pravidla a zajistit, aby vaše instance Memcached byla zabezpečena pomocí UFW.
Nainstalujte knihovny Memcached
Memcached nabízí rozšíření pro různé programovací jazyky, ale nejčastěji se používá s PHP. Tato část vás provede instalací knihoven Memcached pro PHP, Python a Perl a konfigurací Memcached pro webové servery Apache a Nginx.
Nainstalujte knihovny PHP pro Memcached
Chcete-li nainstalovat knihovnu PHP pro Memcached, spusťte následující příkaz:
sudo apt install php-memcached libapache2-mod-php php php-cli
Nakonfigurujte Memcached pro Apache HTTP Server
Pokud používáte Apache HTTP Server, povolte modul Memcached provedením následujícího příkazu:
sudo phpenmod memcached && sudo systemctl restart apache2
Nakonfigurujte Memcached pro Nginx HTTP Server
Podpora Memcached bude ve výchozím nastavení povolena ve vašem konfiguračním bloku PHP, jakmile bude knihovna PHP nainstalována pro uživatele Nginx.
Níže je uveden jednoduchý příklad bloku serveru nginx:
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;
}
}
Nainstalujte knihovnu Python pro Memcached
Chcete-li nainstalovat podporu Pythonu pro Memcached, spusťte následující příkaz:
sudo apt install python3-pymemcache
Nainstalujte knihovnu Perl pro Memcached
Chcete-li nainstalovat podporu Perl pro Memcached, spusťte následující příkaz:
sudo apt install libcache-memcached-libmemcached-perl
Přístup k Memcached z příkazového řádku
Memcached lze monitorovat a spravovat prostřednictvím různých softwarových a webových uživatelských rozhraní. Přímá interakce s Memcached pomocí příkazového řádku je však často nejpřímější metodou pro kontrolu jeho výkonu a správu jeho obsahu.
Nejprve se připojte ke své službě Memcached pomocí telnetu:
telnet localhost 11211
Příklad výstupu:
Zkouším 127.0.0.1... Připojeno k localhost. Escape znak je '^]'.
Dále můžete získat přehled o své službě Memcached pomocí následujícího příkazu:
stats
Tento příkaz vrátí různé statistiky o vaší instanci Memcached, jako je doba provozu, počet položek v mezipaměti a počet klientských připojení.
Svou analýzu můžete upřesnit prozkoumáním slabs Memcached (paměťové oddíly). Můžete například uvést desky v připojené instanci pomocí:
stats slabs
A získat seznam desek, včetně počtu položek uložených v každé desce, pomocí:
stats items
Pro přístup a manipulaci s daty uloženými v Memcached můžete použít cachedump
příkaz pro výpis klíčů. Chcete-li vypsat všechny položky v konkrétní desce, proveďte následující příkaz:
stats cachedump [slab ID] [number of items, 0 for all items]
Například:
stats cachedump 1 0
Příklad výstupu:
ITEM testkey [9 b; 1296857316 s] KONEC
V tomto příkladu deska 1 obsahuje jednu položku s klíčem „testkey“. Chcete-li získat hodnotu této položky, použijte get
příkaz:
get testkey
Příklad výstupu:
VALUE testkey 0 9 testovací data KONEC
Nakonec, chcete-li odstranit položku z mezipaměti, jako je „testkey“, použijte následující příkaz:
delete testkey
Příklad výstupu:
SMAŽENO
Závěr
Na závěr, instalace a konfigurace Memcached na Debian Linuxu může výrazně zlepšit výkon vašich webových aplikací tím, že poskytuje rychlý, efektivní a snadno použitelný systém ukládání do mezipaměti. Podle kroků uvedených v této příručce můžete úspěšně nastavit Memcached, nakonfigurovat jej pomocí preferovaného webového serveru a zabezpečit jej pomocí UFW. Se správnou konfigurací a správou se Memcached může stát nezbytným pro optimalizaci vašich aplikací a poskytování lepší uživatelské zkušenosti.