Brad Fitzpatrick 2003-ban fejlesztette ki a Memcachedet a LiveJournal webhely számára, mint egy hatékony, nyílt forráskódú gyorsítótárazási rendszert, amely az adatbázis-terhelés csökkentésével javítja a dinamikus webalkalmazások teljesítményét. Azóta létfontosságúvá vált számos nagy forgalmú webhely és alkalmazás számára. Mielőtt telepítenénk a Memcachedet a Debian 12 Bookworm, Debian 11 Bullseye vagy Debian 10 Buster rendszerre, az alábbiakban vizsgáljunk meg néhány kulcsfontosságú pontot a Memcachedről.
Főbb jellemzők és előnyök:
- Méretezhetőség: A másodpercenkénti műveletek millióit kezelő memcached ideális nagyméretű webes alkalmazásokhoz és szolgáltatásokhoz.
- Elosztott gyorsítótár: Az elosztott gyorsítótár-architektúrával a Memcached lehetővé teszi a vízszintes skálázást több szerver között, növelve ezzel a gyorsítótár teljes kapacitását.
- Memórián belüli tárhely: Memórián belüli kulcsérték-tárolóként a Memcached gyors hozzáférést biztosít a gyorsítótárazott adatokhoz, jelentősen csökkentve a késleltetést a lemezes tárolórendszerekben.
- Egyszerű API: A Memcached egy egyszerű API-t biztosít, amely különféle programozási nyelveket támogat, beleértve a PHP-t, a Python-t, a Rubyt és másokat.
- Gyorsítótár lejárata: A rendszer lehetővé teszi a fejlesztők számára, hogy beállítsák a gyorsítótárban tárolt adatok lejárati idejét, ami megkönnyíti az elavult vagy elavult adatok automatikus eltávolítását a gyorsítótárból.
- Könnyűsúlyú: A minimális CPU és memória többletterhelés mellett a Memcached hatékonyan fut különféle szerverkonfigurációkon anélkül, hogy jelentősen lemerítené a rendszer erőforrásait.
- Rugalmas adattípusok: A Memcached különféle adattípusokat, például karakterláncokat, egész számokat és összetett objektumokat tartalmaz, így sokoldalúan használható különféle felhasználási esetekben.
A következő útmutató végigvezeti Önt a Memcached telepítési folyamatán a Debian rendszeren két módszerrel: az alapértelmezett Debian-tárral a legstabilabb verzióhoz, vagy a legfrissebb bináris letöltésével és fordításával azok számára, akik a legújabb verzióval szeretnek dolgozni.
1. módszer: Telepítse a Memcachedet az alapértelmezett APT-tárolón keresztül
Ebben a részben az APT csomagkezelő segítségével telepítjük a Memcachedet Debian Linux rendszerére. Ez magában foglalja a rendszercsomagok frissítését és a Memcached telepítését néhány hasznos eszközzel.
Frissítse Debian rendszerét a Memcached telepítés előtt
Ahhoz, hogy a legújabb csomagverziókkal és biztonsági frissítésekkel rendelkezzen, először frissítse a Debian rendszert. Futtassa a következő parancsot:
sudo apt update && sudo apt upgrade
Ez a parancs frissíti a csomaglistát, és frissíti az elavult csomagokat a legújabb verziókra.
Telepítse a Memcached és a Libmemcached-eszközöket
A Debian alapértelmezett tárolóiban tartalmazza a Memcachedet, ami egyszerűvé teszi a telepítést. A Memcached telepítéséhez futtassa a következő parancsot:
sudo apt install memcached libmemcached-tools
Ez a parancs telepíti a Memcachedet és a libmemcached-tools
csomag. A libmemcached-tools
csomag további parancssori segédprogramokat biztosít, amelyek több interakciót és felügyeleti képességet tesznek lehetővé a Memcached segítségével.
2. módszer: Telepítse a Memcached programot forráson keresztül
Ez a rész a Memcached telepítését tárgyalja a Debian rendszerre a forráskódból történő fordítással. A forrásból történő telepítés előnyös lehet, ha a Memcached legújabb verzióját szeretné használni, vagy testre szeretné szabni a buildet az adott követelményeknek megfelelően.
Töltse le a Memcached Source-t
Először látogassa meg a Memcachedet legújabb kiadási oldala hogy megtalálja az aktuális verziót. Használja a következőket wget
parancs a közvetlen letöltéshez:
wget https://memcached.org/latest
Memcached forrásarchívum kibontása
Ezután bontsa ki a letöltött forráskódot a következő parancs futtatásával:
tar -xvf latest
Mielőtt folytatná, keresse meg a kibontott könyvtárat. A könyvtár neve a letöltött verziótól függ:
cd memcached-{place version number here}
Cserélje ki {version_number}
a tényleges verziószámmal.
Telepítse a Memcached fordításához szükséges kezdeti csomagokat
A Memcached fordítása előtt telepítenie kell a szükséges összeállítási függőségeket. Telepítésükhöz futtassa a következő parancsot:
sudo apt install build-essential libevent-dev gcc make libc6-dev
A telepített csomagok a következő célokat szolgálják:
gcc
: Egy jól ismert C fordító a Memcached forrásfájlokhoz.make
: Összeállítást irányít.libc6-dev
: Hivatkozást biztosít a GNU C könyvtárra és a fejlécfájlokra.libevent-dev
: Fejlesztési fájlokat tartalmaz az aszinkron eseményértesítéshez.
Konfigurálja a telepítést
Használja a --prefix=
paraméter annak a könyvtárnak a beállításához, ahová a Memcached bináris és a könyvtárak telepítésre kerülnek:
./configure --prefix=/usr/local
Memcached forráskód fordítása
Fordítsa le a Memcached forráskódot a make
parancs:
make
Tesztelje a Memcachedet az aktuális verzió megerősítésével:
./memcached --version
Telepítse a Memcached-et a „make install” paranccsal
A fordítási folyamat befejezése után telepítse a Memcached programot a következő parancs futtatásával:
sudo make install
Ez a parancs telepíti a Memcachedet a rendszerére, és elérhetővé teszi a parancssorból. Annak biztosítására, hogy a rendszer felismerje az új könyvtárakat, futtassa a következőt:
sudo ldconfig
Ellenőrizze a Memcached telepítését
A Memcached sikeres telepítésének ellenőrzéséhez futtassa a következő parancsot:
memcached -V
Ez a parancs megjeleníti a telepített Memcached verziót, megerősítve a sikeres telepítést a forráskódból.
Hozzon létre egy Systemd szolgáltatást a Memcached számára
Amikor a Memcachedet a forrásból telepíti, az nem hoz létre automatikusan rendszerszolgáltatási fájlt. A Memcached szolgáltatásként való futtatásához és kezeléséhez systemctl
, létre kell hoznia egy egyéni systemd szolgáltatásfájlt a Memcached számára. Kövesse az alábbi lépéseket a szolgáltatás létrehozásához és engedélyezéséhez:
Hozzon létre egy új fájlt, melynek neve memcached.service
a /etc/systemd/system
könyvtárat egy választott szövegszerkesztővel. Ebben a példában azt fogjuk használni nano
:
sudo nano /etc/systemd/system/memcached.service
Adja hozzá a következő tartalmat a memcached.service
fájl:
[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
Mentse el a fájlt, és lépjen ki a szövegszerkesztőből.
Hozzon létre a memcache
felhasználó és csoport a szolgáltatás biztonságos futtatásához:
sudo useradd -r -s /sbin/nologin -U -M memcache
Töltse be újra a rendszerkonfigurációt az új szolgáltatásfájl felismeréséhez:
sudo systemctl daemon-reload
Végül indítsa el a szolgáltatást:
sudo systemctl enable memcached --now
Memcached szolgáltatás állapotának kezelése
Ez a rész a Memcached szolgáltatás kezelésével foglalkozik a Debian rendszeren. Ez magában foglalja a szolgáltatás állapotának ellenőrzését, a szolgáltatás elindítását és leállítását, valamint a rendszerindításkor való futásra való konfigurálást.
Ellenőrizze a Memcached szolgáltatás állapotát
Alapértelmezés szerint a Memcachednek futnia kell a telepítés után. Állapotának ellenőrzéséhez használja a systemctl
parancsot a következőképpen:
systemctl status memcached
Ez a parancs megjeleníti a Memcached szolgáltatás aktuális állapotát.
Indítsa el a Memcached szolgáltatást
Ha a Memcached nem fut, a szolgáltatást a következő paranccsal indíthatja el:
sudo systemctl start memcached
Engedélyezze a Memcachedet a rendszerindításkor
Annak biztosítására, hogy a Memcached szolgáltatás automatikusan elinduljon a rendszer indításakor, használja a következő parancsot:
sudo systemctl enable memcached
Állítsa le a Memcached szolgáltatást
Ha le kell állítania a Memcached szolgáltatást, használja ezt a parancsot:
sudo systemctl stop memcached
A Memcached letiltása a rendszerindításkor
Ha meg szeretné akadályozni, hogy a Memcached szolgáltatás automatikusan elinduljon a rendszerindításkor, futtassa a következő parancsot:
sudo systemctl disable memcached
Indítsa újra a Memcached szolgáltatást
Ha például a konfiguráció módosítása után újra kell indítania a Memcached szolgáltatást, használja ezt a parancsot:
sudo systemctl restart memcached
Ellenőrizze, hogy a Memcached figyel az alapértelmezett porton
Végül ellenőrizze, hogy a Memcached aktívan figyel a localhost-on az alapértelmezett port használatával 11211
. Ennek megerősítéséhez futtassa a következő parancsot:
ps -ef | grep memcached
A kimeneten egy sornak kell megjelennie, amely jelzi, hogy a Memcached fut és figyel a megadott porton, hasonlóan a következőkhöz:
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
Konfigurálja a Memcached tippeket
Ez a rész a Memcached beállítások szerkesztésével foglalkozik memcached.conf
fájlt. Megbeszéljük a hallgatási IP-cím beállítását, az UDP letiltását és az alapértelmezett memóriakiosztás megváltoztatását.
Nyissa meg a Memcached konfigurációs fájlt
Nyissa meg a Memcached konfigurációs fájlt a címen /etc/memcached.conf
szövegszerkesztő segítségével, mint pl nano
:
sudo nano /etc/memcached.conf
Azoknak a felhasználóknak, akik a Memcached-et forrásból fordították le, létre kell hozniuk ezt az első megnyitáskor; a fájl üres lesz az APT metódushoz képest; ezt átmásolhatja a beállítás megkezdéséhez:
# 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
Állítsa be a hallgatási IP-címet
Alapértelmezés szerint a Memcached a 127.0.0.1 IP-címet figyeli. Ellenőrizze az -l paramétert a konfigurációs fájlban, és győződjön meg róla, hogy a megfelelő IP-címre van beállítva. Ha módosítani kell az IP-címet, cserélje ki 127.0.0.1
az új IP-címmel:
-l 127.0.0.1
UDP letiltása (opcionális)
Ha nincs szüksége UDP támogatásra, javasoljuk, hogy tiltsa le. Az UDP letiltásához adja hozzá a következő sort a konfigurációs fájlhoz:
-U 0
Konfigurálja a memóriafoglalást
A Memcached alapértelmezett memóriafoglalása 64 MB, ami nem biztos, hogy elegendő nagyobb webhelyekhez. Fontolja meg a memóriafoglalás magasabb értékre állítását a Memcached maximalizálása érdekében.
A memóriafoglalás beállításához keresse meg a -m
paramétert a konfigurációs fájlban, és cserélje ki az alapértelmezett értéket a kívánt mennyiségre (MB-ban). Például 2 GB memória lefoglalásához állítsa be az értéket 2000
:
-m 2000
Módosítsa ezt a beállítást a szerver rendelkezésre álló memóriája és követelményei alapján.
Mentse és indítsa újra a Memcachedet
A szükséges változtatások elvégzése után a gomb megnyomásával mentse el a konfigurációs fájlt CTRL+O
, utána Y
, majd CTRL+X
a szövegszerkesztőből való kilépéshez. Végül indítsa újra a Memcached szolgáltatást, hogy a változások életbe lépjenek:
sudo systemctl restart memcached
További memcached konfigurációs példák
A korábban tárgyalt konfigurációs lehetőségeken kívül számos más beállítás is van, amelyeket módosíthat a Memcached igényeinek megfelelő finomhangolásához. Íme néhány példa, rövid bemutatókkal együtt:
Adja meg a felhasználót és a csoportot
A Memcached egy adott felhasználó és csoport alatt fut, amelyet a -u
paraméter. Például a Memcached futtatásához a memcache
felhasználó, adja hozzá a következő sort a konfigurációs fájlhoz:
-u memcache
Nagy memórialapok engedélyezése
A funkció engedélyezése javíthatja a teljesítményt, ha rendszere támogatja a nagy memórialapokat. A nagy memórialapok engedélyezéséhez keresse meg a -L
paramétert, és törölje a megjegyzést (távolítsa el a #
a sor elején):
-L
Állítsa be a maximális elemméretet
A Memcached alapértelmezett maximális elemmérete 1 MB. A maximális tételméret növeléséhez használja a -I
paramétert, majd a kívánt méretet. Ha például a maximális elemméretet 5 MB-ra szeretné beállítani, adja hozzá a következő sort a konfigurációs fájlhoz:
-I 5m
Állítsa be a szálak maximális számát
A Memcached alapértelmezés szerint négy szálat használ. A paraméter segítségével növelheti vagy csökkentheti a szálak számát a szerver képességeinek és munkaterhelésének megfelelően. Például a szálak számának 8-ra állításához adja hozzá a következő sort:
-t 8
Állítsa be az üresjárati időtúllépést
A Memcached bizonyos tétlenség után automatikusan bezárja a tétlen kapcsolatokat. A tétlenségi időkorlát módosításához használja a -o
paraméter követi idle_timeout
és a kívánt másodpercek számát. Ha például a tétlenségi időt 600 másodpercre (10 percre) szeretné beállítani, adja hozzá a következő sort:
-o idle_timeout=600
SASL hitelesítés engedélyezése
Engedélyezheti a SASL (Egyszerű hitelesítés és biztonsági réteg) támogatását, ha hitelesítésre van szüksége a Memcached szerver eléréséhez. A SASL engedélyezéséhez keresse meg a -S
paramétert, és törölje a megjegyzést (távolítsa el a #
a sor elején):
-S
Ne felejtse el mindig újraindítani a Memcached szolgáltatást a konfigurációs fájl módosítása után:
sudo systemctl restart memcached
Telepítse az UFW tűzfalat a Memcachedhez
A Memcached példány biztonsága érdekében kulcsfontosságú a tűzfalszabályok megfelelő konfigurálása. Ez a rész bemutatja, hogyan kell telepíteni és konfigurálni az Uncomplicated Firewall (UFW) megoldást a Memcached szerver biztonsága érdekében.
Ellenőrizze, hogy az UFW telepítve van-e
Először is ellenőrizzük, hogy az UFW már telepítve van-e a Debian rendszeren:
sudo ufw --version
Ha az UFW telepítve van, a verziószáma megjelenik a kimenetben. Ha nem, akkor telepítenie kell.
Telepítse az UFW-t a Debian for Memcachedre
Az UFW Debian rendszerre történő telepítéséhez futtassa a következő parancsot:
sudo apt install ufw
A telepítés befejezése után engedélyezze az UFW-t a következő paranccsal:
sudo ufw enable
Állítsa be az UFW-szabályokat a Memcached számára
Most, hogy az UFW telepítve van és engedélyezve van, engedélyezési szabályokat kell létrehoznia az 11211-es TCP-porton. A létrehozott szabályok a telepítéstől és a követelményektől függenek, függetlenül attól, hogy egyetlen IP-hálózati kapcsolatot használnak, vagy több példányt használnak egy fürthálózaton.
Példa egy IP hálózati csatlakozásra
Hozzáférés engedélyezése a Memcachedhez egy adott IP-címről:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Fürt IP-hálózati kapcsolat több példányos példával
Hozzáférés engedélyezése a Memcachedhez az IP-címek alhálózatáról:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Vegye figyelembe, hogy a második UFW-szabály egy alhálózati szabály. A hozzáférés engedélyezése előtt győződjön meg arról, hogy a belső hálózat biztonságos és megbízható.
4. lépés: Ellenőrizze az UFW-szabályokat
A megfelelő szabályok beállítása után ellenőrizze, hogy azok megfelelően vannak-e konfigurálva az aktuális UFW-szabályok felsorolásával:
sudo ufw status
A kimenetnek meg kell jelennie a konfigurált szabályoknak, biztosítva, hogy a Memcached példány UFW-vel védett legyen.
Telepítse a Memcached Libraries alkalmazást
A Memcached bővítményeket kínál különféle programozási nyelvekhez, de leggyakrabban PHP-vel használják. Ez a rész végigvezeti Önt a Memcached könyvtárak PHP, Python és Perl számára telepítésén, valamint a Memcached Apache és Nginx webszerverekhez való konfigurálásán.
Telepítse a PHP könyvtárakat a Memcachedhez
A Memcached PHP könyvtárának telepítéséhez futtassa a következő parancsot:
sudo apt install php-memcached libapache2-mod-php php php-cli
A Memcached beállítása az Apache HTTP-kiszolgálóhoz
Ha az Apache HTTP-kiszolgálót használja, engedélyezze a Memcached modult a következő parancs végrehajtásával:
sudo phpenmod memcached && sudo systemctl restart apache2
A Memcached konfigurálása az Nginx HTTP-kiszolgálóhoz
A memcached támogatás alapértelmezés szerint engedélyezve lesz a PHP konfigurációs blokkjában, amint a PHP könyvtár telepítve van az Nginx felhasználók számára.
Az alábbiakban egy egyszerű nginx szerverblokk példája látható:
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;
}
}
Telepítse a Python Library for Memcached programot
A Python Memcached támogatásának telepítéséhez futtassa a következő parancsot:
sudo apt install python3-pymemcache
Telepítse a Perl Library for Memcached programot
A Memcached Perl támogatásának telepítéséhez hajtsa végre a következő parancsot:
sudo apt install libcache-memcached-libmemcached-perl
Hozzáférés a Memcachedhez a parancssorból
A Memcached különféle szoftvereken és webes felhasználói felületeken keresztül figyelhető és kezelhető. Mindazonáltal a Memcached parancssor segítségével történő közvetlen interakciója gyakran a legegyszerűbb módszer a teljesítmény ellenőrzésére és a tartalmának kezelésére.
Először csatlakozzon a Memcached szolgáltatáshoz a Telnet segítségével:
telnet localhost 11211
Példa kimenet:
127.0.0.1 próbálkozás... Csatlakozva a localhosthoz. Az Escape karakter '^]'.
Ezután a következő paranccsal áttekintést kaphat a Memcached szolgáltatásáról:
stats
Ez a parancs különféle statisztikákat ad vissza a Memcached példányról, például az üzemidőt, a gyorsítótár elemeinek számát és az ügyfélkapcsolatok számát.
Finomíthatja az elemzést a Memcached táblák (memóriapartíciók) vizsgálatával. Például listázhatja a csatlakoztatott példány födémeit a következővel:
stats slabs
És szerezze be a födémek listáját, beleértve az egyes födémekben tárolt elemek számát, a következő használatával:
stats items
A Memcachedben tárolt adatok eléréséhez és kezeléséhez használhatja a cachedump
parancsot a kulcsok listázásához. Egy adott tábla összes elemének listázásához hajtsa végre a következő parancsot:
stats cachedump [slab ID] [number of items, 0 for all items]
Például:
stats cachedump 1 0
Példa kimenet:
ITEM tesztkulcs [9 b; 1296857316 s] VÉGE
Ebben a példában az 1. födém egy elemet tartalmaz a „tesztkulcs” kulccsal. Az elem értékének lekéréséhez használja a get
parancs:
get testkey
Példa kimenet:
VALUE tesztkulcs 0 9 tesztadatok VÉGE
Végül a gyorsítótárazott elem, például a „tesztkulcs” törléséhez használja a következő parancsot:
delete testkey
Példa kimenet:
TÖRÖLVE
Következtetés
Összefoglalva, a Memcached telepítése és konfigurálása Debian Linux rendszeren jelentősen javíthatja webalkalmazásai teljesítményét azáltal, hogy gyors, hatékony és könnyen használható gyorsítótárat biztosít. Az ebben az útmutatóban leírt lépéseket követve sikeresen beállíthatja a Memcached szolgáltatást, konfigurálhatja a kívánt webszerverrel, és biztonságossá teheti az UFW használatával. Megfelelő konfigurációval és kezeléssel a Memcached elengedhetetlenné válhat az alkalmazások optimalizálásához és a jobb felhasználói élmény biztosításához.